CN101271434B - 用于执行多周期仲裁的数据处理装置和方法 - Google Patents
用于执行多周期仲裁的数据处理装置和方法 Download PDFInfo
- Publication number
- CN101271434B CN101271434B CN200810087374.6A CN200810087374A CN101271434B CN 101271434 B CN101271434 B CN 101271434B CN 200810087374 A CN200810087374 A CN 200810087374A CN 101271434 B CN101271434 B CN 101271434B
- Authority
- CN
- China
- Prior art keywords
- access
- arbitration
- request
- circuit
- cycle
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000002093 peripheral effect Effects 0.000 claims description 38
- 230000005055 memory storage Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 description 28
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明名称是“用于执行多周期仲裁的数据处理装置和方法”。提供数据处理装置和方法,用于在寻求访问共享公共访问通路的多个资源的多个访问请求之间进行仲裁。至少一个逻辑元件发出请求访问资源的标识要访问资源的哪一个的访问请求。具有多个流水线级的仲裁电路执行仲裁操作。提供具有多种过滤器状态的过滤器电路,过滤器状态的数量取决于仲裁电路的流水线级数量,各资源与过滤器状态之一关联。对于新的多周期仲裁操作,过滤器电路选择过滤器状态之一。然后确定新的多周期仲裁操作的候选访问请求。这种方法即使在资源可能具有与其关联的、阻止它们能够在每一个时钟周期接收访问请求的内部访问定时参数的情况下也允许进行有效的多周期仲裁。
Description
技术领域
本发明涉及用于执行多周期仲裁的数据处理装置和方法,特别是涉及用于在通过多个资源共享的公共访问通路传递的多个访问请求之间执行这种仲裁的数据处理装置和方法。
背景技术
在数据处理装置中,情况往往是数据处理装置中的多个资源共享公共访问通路(本文中又称作共享访问通路)。例如,数据处理装置中的多个逻辑元件、如多个主装置可共享对于由一个或多个存储装置组成的存储器的访问,那些存储装置的每个包括多个存储体(bank)。在这个实例中,存储装置的各存储体可被认为是共享资源。对这种存储器的访问通常由存储控制器控制,使得各种逻辑元件发出的、寻求对存储器的访问的任何访问请求由存储控制器接收,存储控制器通常包括用于在向存储器发出访问请求之前对它们进行缓冲的队列。在存储控制器与存储器之间往往存在单个连接通路,因此这个连接通路形成到存储器中包含的多个存储体的公共访问通路。
作为共享访问通路的另一个实例,许多数据处理装置提供互连电路,用于耦合设置在装置中的各个主逻辑单元和从(slave)逻辑单元,其中互连电路提供多个连接通路,通过连接这些通路可建立主逻辑单元与从逻辑单元之间的通信。连接通路的一部分通常在多个逻辑单元之间共享,如通常在单层互连中的情况那样。
作为共享访问通路的另一个实例,多个外围设备可连接到外围总线。外围总线往往经由桥接电路连接到主系统总线,以及送往那些外围设备的任何访问请求首先由桥接电路接收,桥接电路则通过外围总线向适当的外围设备一次一个地发出访问请求。由于任何特定时间只有一个访问请求可经由外围总线传播,所以外围总线形成共享访问通路。
在数据处理装置中出现共享访问通路的上述三个实例仅作为实例来提供,而不是要表示在数据处理装置中产生共享访问通路的情况的详尽列表。
无论这样一种共享访问通路存在于什么位置,通常需要提供用于执行仲裁操作的仲裁电路,以便在通过那个共享访问通路传递的多个访问请求之间进行仲裁。
当数据处理装置的组件的工作频率增加时,变得越来越难以在单个时钟周期中执行所需仲裁操作。因此,有必要提供执行作为多周期操作的仲裁操作的仲裁电路。为了取得连续的吞吐量,下一个访问的仲裁必须在知道前一个仲裁操作的结果之前开始。为此,可为仲裁电路提供多个流水线级(pipeline stage),以便允许相应的多个多周期仲裁操作在任一时刻都在进行。。
但是,共享公共访问通路的资源往往是这样的,使得它们无法在每一个时钟周期接收访问请求。实际上,一旦经由仲裁操作已经准许访问请求对特定资源的访问权,与那个资源关联的内部访问(interaccess)定时参数可使那个资源对于多个时钟周期是不可访问的。因此,希望确保在那个周期中,仲裁电路不准许寻求访问那个特定共享资源的另一个访问请求的访问权。
但是,使用以上所述的流水线仲裁方法时,多个仲裁操作通常同时正在进行,因此对于流水线中正在进行的任何特定的仲裁操作,通常不可能在流水线中的那个特定仲裁操作之前、在需要由那个特定仲裁操作进行判定时知道一个或多个仲裁操作的结果。因此,有可能的是,仲裁电路的流水线级中正进行的仲裁操作的多个迭代准许寻求访问相同共享资源的访问请求的访问权。因此,有可能的是,由仲裁电路准许了访问权的访问请求随后可能因上述内部访问定时参数限制而停止(stall)等待访问共享资源,如果出现这种情况,则明显影响性能。
因此,在执行作为多周期操作的仲裁的情况下,希望提供一种用于在寻求访问共享公共访问通路的多个资源的多个访问请求之间进行仲裁的改进技术。
发明内容
从第一方面来看,本发明提供一种数据处理装置,包括:共享公共访问通路的多个资源;至少一个逻辑元件,用于发出请求访问所述资源的访问请求,各访问请求标识要访问所述资源的哪一个;仲裁电路,用于执行在通过公共访问通路传递的多个访问请求之间进行仲裁的多周期仲裁操作,仲裁电路具有多个流水线级,以便允许相应的多个多周期仲裁操作在任一时刻正在进行,各流水线级执行相应的仲裁功能,使得与多个流水线级对应的多个仲裁功能共同执行多周期仲裁操作,从而从所述多个访问请求中选择胜出访问请求以准许访问其所标识的资源;过滤器(filter)电路,具有多个过滤器状态,过滤器状态的数量至少等于所述仲裁电路的流水线级数量,并且各资源与所述过滤器状态之一关联;对于要由所述仲裁电路执行的新的多周期仲裁操作,过滤器电路选择所述过滤器状态中的、没有被选择用于仲裁电路的流水线级中已经在进行的其它任何多周期仲裁操作并且还没有针对其选择胜出访问请求的一个过滤器状态,并确定正寻求访问与所选择的过滤器状态关联的资源的那些访问请求作为新的多周期仲裁操作的候选访问请求,并且将所述候选访问请求提供给所述仲裁电路作为针对新的多周期仲裁操作的所述多个访问请求。
根据本发明提供过滤器电路,它具有多个过滤器状态,其中过滤器状态的数量取决于仲裁电路中的流水线级数量。共享公共访问通路的资源的每个则与那些过滤器状态之一关联。
然后,对于要由仲裁电路执行的新的多周期仲裁操作,过滤器电路选择过滤器状态之一,所选状态没有被选择用于仲裁电路中已经在进行的其它任何多周期仲裁操作,然后根据那个所选过滤器状态来确定寻求访问与那个所选过滤器状态关联的资源的那些访问请求作为仲裁操作的候选访问请求。
由于任何特定资源仅与过滤器状态之一关联,并且过滤器电路为新的仲裁操作选择没有被选择用于正进行的其它任何仲裁操作的过滤器状态,这确保新的仲裁操作仅在寻求访问没有被仲裁电路中已经在进行的其它仲裁操作的胜出访问请求的任一个所访问的资源的访问请求之间进行选择。
因此,通过这样一种方法,任何特定多周期仲裁操作选择随后因内部访问定时参数而变为停止的访问请求作为胜出访问请求的可能性明显降低。实际上,假定任何特定资源的访问之间所需的时钟周期的数量小于或等于执行多周期仲裁操作的周期数量(它取决于流水线深度(depth)),则这样一种方法确保不会发生这种停止,因为始终会满足各资源的访问间定时参数。
除了考虑已经被选择用于仲裁电路的流水线级中已经在进行的其它任何多周期仲裁操作的过滤器状态之外,过滤器电路还可设置成在选择过滤器状态之一时考虑被访问请求寻求访问的资源。例如,如果存在四种过滤器状态0、1、2和3,并且过滤器状态0和1已经被选择用于流水线中正进行的多周期仲裁操作,则对于新的多周期仲裁操作,过滤器电路可在过滤器状态2与3之间进行选择。但是,如果等待仲裁的访问请求都寻求访问与过滤器状态3关联的一个或多个资源,则在这个实施例中,过滤器电路比选择过滤器状态2更优先地选择过滤器状态3,即使过滤器状态2可能已经是在这时要选择的缺省过滤器状态。大家会理解,以上只是如何由过滤器电路来考虑被访问请求寻求访问的资源的一个实例,存在可考虑资源的其它各种方式。例如,在给定资源被各种访问请求访问的情况下,过滤器电路可根据等待仲裁的访问请求来决定选择使最大数量的候选访问请求能够被选择的可用过滤器状态。
在一个实施例中,过滤器电路可设置成为每一个新的多周期仲裁操作选择一种过滤器状态。但是,在一个实施例中,如果在新的仲裁操作将由所述仲裁电路开始时,在仲裁电路的流水线级中没有其它多周期仲裁操作已经在进行,则过滤器电路设置成不是选择一种过滤器状态,而是允许由新的多周期仲裁操作考虑所有等待仲裁的访问请求。这允许更有效地仲裁在那种特定情况(scenario)中等待仲裁的访问请求,因为在那种情况下,不需要仅在等待仲裁的访问请求的子集之间进行仲裁。
共享公共访问通路的多个资源可采取各种形式。但是,在一个实施例中,所述多个资源由至少一个存储装置提供,并且每个共享资源包括至少一个存储装置的存储体。在一个这样的实施例中,每个过滤器状态与存储体子集关联,仲裁电路设置在至少一个存储装置的存储控制器中,并且共享访问通路包括存储控制器与至少一个存储装置之间的通路。
存在包括多个存储体的许多不同类型的存储装置。在一个实施例中,每个存储装置包括动态随机存取存储器(DRAM)存储电路,它包括多个存储体。DRAM可以是与发出访问请求的逻辑元件芯片上(on-chip)提供的嵌入DRAM,或者可以是芯片外(off-chip)DRAM。通常芯片外提供的一种具体类型的DRAM是同步DRAM(SDRAM),SDRAM存储装置通常与时钟速度同步,与存储装置配合使用的处理装置对于该时钟速度进行了优化。SDRAM存储器通常由多个独立芯片组成,每个这种芯片组成独立存储装置,并且各芯片包括多个存储体。向这种SDRAM存储器发出的访问请求指定某个地址,该地址的一部分指定SDRAM存储器的特定芯片,以及该地址的另一部分指定那个芯片的特定存储体。该地址的其它部分则指定已标识存储体中的行和列。
在每个共享资源包括存储装置的存储体的实施例中,大家会理解,各存储体与过滤器状态之一关联。因此,通过确保选择用于新的多周期仲裁操作的过滤器状态不同于选择用于已经在进行的其它多周期仲裁操作的任何过滤器状态,可确保新的多周期仲裁操作的任何候选访问请求不会寻求访问与正运行的那些其它多周期仲裁操作的任一个可能访问的相同的存储体。因此,特定存储体一旦被仲裁则对于多个时钟周期可能是不可访问的事实不会引起任何性能问题,原因在于,由于将过滤器状态选择为选取多周期仲裁操作的每个迭代的候选访问请求的方式,寻求访问那个特定存储体的另一个访问请求在那个时间段不会被选取。
在一个特定实施例中,仲裁电路具有两个流水线级,存储体由存储体地址标识,以及至少一个具有偶数存储体地址的存储装置的所有存储体与第一过滤器状态关联,而至少一个具有奇数存储体地址的存储装置的所有存储体与第二过滤器状态关联。当过滤器电路审查等待仲裁的访问请求以确定它们是寻求访问偶数存储体还是奇数存储器时,只需要查看访问请求所指定的存储体地址的最低有效位。
大家会理解,对于由多个芯片组成的SDRAM存储器,类似的方案可将具有偶数芯片地址的所有存储体设置成与第一过滤器状态关联,将具有奇数芯片地址的所有存储体设置成与第二过滤器状态关联,所需的只是审查访问请求所指定的地址的芯片地址部分的最低有效位,以便确定是偶数芯片还是奇数芯片将由那个访问请求进行访问。
在一个备选实施例中,共享公共访问通路的多个资源的每个包括连接到外围总线的外围单元,仲裁电路设置在将外围总线与互连电路连接的桥接电路中,其中至少一个逻辑元件通过互连电路发出访问请求,以及共享访问通路包括外围总线。
如前面所述,通常的情况是,一次只有一个访问请求可通过外围总线传播,因此,如果多个外围单元连接到外围总线,则在多个访问请求等待路由到适当外围单元时可能需要在桥接电路中进行仲裁。
每个外围单元通常不能每一个周期接收访问请求。作为一个实例,外围单元的每个可以只能够每两个周期接收一个访问。实际上,在一些实施例中,这类外围单元工作在比数据处理装置的其余部分更慢的时钟频率,因此这两个慢时钟周期可等同于数据处理装置的其余部分的2N个快时钟周期,其中N是数据处理装置的快时钟周期与外围单元的慢时钟周期之间的比率。
在上述存储器存储体和外围单元的两个实例中,可能从单个逻辑元件或者从多个不同的逻辑元件发出了等待仲裁的多个访问请求。在一个实施例中,等待仲裁的访问请求保存在仲裁电路的缓冲器中。具体来说,考虑存储器芯片的实例,缓冲器可设置在包含仲裁电路的存储控制器中。类似地,对于外围单元的实例,缓冲器可设置在包含仲裁电路的桥接电路中。缓冲器可采取各种形式,但在一个实施例中作为队列来提供。
根据另一个实施例,多个逻辑元件经由互连电路与多个资源连接,共享访问通路是所述互连电路中、所述多个资源之间共享的连接通路,以及仲裁电路设置在所述互连电路中,以便在所述多个逻辑元件发出并通过所述连接通路传递的多个访问请求之间进行仲裁。
在这个实例中,等待仲裁的多个访问请求的存在由多个逻辑元件同时发出访问请求引起。如果与耦合到连接通路的各个资源关联的内部访问定时参数是这样的,使得它们使特定资源在接收到访问请求之后对于某些时钟周期是不可访问的,则根据本发明的实施例使用过滤器状态同样可确保仲裁电路不准许访问请求的访问权,访问请求仅变成停止等待访问该资源。
从第二方面来看,本发明提供一种在寻求访问数据处理装置中共享公共访问通路的多个资源的多个访问请求之间进行仲裁的方法,每个访问请求标识要访问所述资源的哪一个,该方法包括以下步骤:在仲裁电路中执行在将要通过公共访问通路传递的多个访问请求之间进行仲裁的多周期仲裁操作,仲裁电路具有多个流水线级,以便允许相应的多个多周期仲裁操作在任一时刻正在进行,各流水线级执行相应的仲裁功能,使得与多个流水线级对应的多个仲裁功能共同执行多周期仲裁操作,从而从所述多个访问请求中选择胜出访问请求以准许访问其所标识的资源;提供多个过滤器状态,过滤器状态的数量至少等于所述仲裁电路的流水线级数量,并且各资源与所述过滤器状态之一关联;对于要由所述仲裁电路执行的新的多周期仲裁操作,选择所述过滤器状态中的、没有被选择用于仲裁电路的流水线级中已经在进行的其它任何多周期仲裁操作并且还没有针对其选择胜出访问请求的一个过滤器状态,并确定正寻求访问与所选择的过滤器状态关联的资源的那些访问请求作为新的多周期仲裁操作的候选访问请求,并且将所述候选访问请求提供给所述仲裁电路作为针对新的多周期仲裁操作的所述多个访问请求。
从第三方面来看,本发明提供一种数据处理装置,包括:共享公共访问通路的多个资源部件;至少一个逻辑部件,用于发出请求访问所述资源部件的访问请求,各访问请求标识要访问所述资源部件的哪一个;仲裁部件,用于执行在通过公共访问通路传递的多个访问请求之间进行仲裁的多周期仲裁操作,仲裁部件具有多个流水线级部件,用于允许相应的多个多周期仲裁操作在任一时刻正在进行,各流水线级部件执行相应的仲裁功能,使得与多个流水线级部件对应的多个仲裁功能共同执行多周期仲裁操作,从而从多个访问请求中选择胜出访问请求以准许访问其所标识的资源;过滤器部件,具有多个过滤器状态,过滤器状态的数量至少等于所述仲裁部件的流水线级部件数量,并且各资源部件与所述过滤器状态之一关联;对于要由所述仲裁部件执行的新的多周期仲裁操作,过滤器部件选择所述过滤器状态中的、没有被选择用于仲裁部件的流水线级部件中已经在进行的其它任何多周期仲裁操作并且还没有针对其选择胜出访问请求的一个过滤器状态,并确定正寻求访问与所选择的过滤器状态关联的资源部件的那些访问请求作为新的多周期仲裁操作的候选访问请求,并且将所述候选访问请求提供给所述仲裁部件作为针对新的多周期仲裁操作的所述多个访问请求。
附图说明
仅作为实例、参照附图所示的本发明的实施例进一步描述本发明,附图包括:
图1是根据本发明的一个实施例的数据处理装置的框图;
图2是根据本发明的一个实施例、更详细示出图1的存储控制器75的框图;
图3A示意示出寻求访问图1的SDRAM 90的访问请求所提供的地址的若干部分;
图3B是根据本发明的一个实施例、示出图1的SDRAM 90中设置的芯片和存储体的简图;以及
图4是根据本发明的一个实施例示出的仲裁电路及关联过滤器机构的操作的流程图。
具体实施方式
图1是根据本发明的一个实施例的数据处理装置的框图,并示出数据处理装置中可执行多周期仲裁的各个位置。但是,大家会理解,本发明的实施例的仲裁电路和过滤器电路可用于在数据处理装置中多个资源共享公共访问通路的任何位置。
为了说明本发明的一个具体实施例,参照图1来考虑数据处理装置,其中具有经由互连电路25与多个从逻辑单元65、70、75、95耦合的多个主逻辑单元10、15、20。互连电路通常提供用于耦合各个主逻辑单元和从逻辑单元的多个连接通路,以便使事务(transaction)能够被执行。各事务通常包括从主逻辑单元到从逻辑单元的地址转换以及主逻辑单元与从逻辑单元之间的一个或多个数据传输。对于写事务(write transaction),这些数据传输从主逻辑单元传递到从逻辑单元(在一些实现中,还存在由从逻辑单元到主逻辑单元的写响应(writeresponse)传输),而对于读事务,这些数据传输由从逻辑单元传递给主逻辑单元。
经由互连电路的连接通路路由各事务的各个传输的方式取决于互连电路中使用的总线协议。两种已知类型的总线协议是:非分离(non-split)事务协议,其中,在事务的地址转换与那个事务的后续一个或多个数据传输之间存在固定的定时关系;以及分离事务协议,其中,提供独立的地址信道和数据信道,并且数据传输的定时相对特定事务的地址转换的定时是分离的。
在本发明的一个实施例中,互连电路具有单层互连结构,以及在图1的互连电路25中,示出那个单层结构的特定部分。具体来说,示出该结构的一部分,因此,三个主逻辑单元10、15、20的任一个可访问从逻辑单元二65或从逻辑单元三70。复用器30设置成接收主逻辑单元10、15、20发出的任何访问请求,这类访问请求例如是发起事务的地址转换。应用多周期仲裁操作的仲裁器35用来控制复用器30,以便在主逻辑单元10、15、20发出的多个访问请求之间进行仲裁,具体来说是对它们使用共享访问通路40进行仲裁。类似地,提供解码器50用于控制去复用器45,以便分别经由关联通路55、60将任何特定访问请求路由到适当的目标从逻辑单元65、70。
如果互连使用分离事务总线协议(split transaction bus protocol),则大家会理解,对于图1所示的互连25中的独立地址和数据信道的每个重复互连25中的结构。
又如图1所示,从逻辑单元之一可以是用来与芯片外存储器、如SDRAM 90接口的存储控制器75。各个主逻辑单元10、15、20发出的任何访问请求在存储控制器75中排队,然后通过共享访问通路85一次一个地输出到SDRAM 90。为了仲裁对共享访问通路85的访问,仲裁器80可设置在存储控制器75中,以便执行多周期仲裁操作。
又如图1所示,从逻辑单元之一可以是桥接电路95,它接收经由互连25路由的访问请求,然后经由外围总线105将那些访问请求输出给连接到那个外围总线的外围设备120、125中适当的一个。在任何特定时间点只有一个访问请求可经由外围总线输出,因此外围总线105对于各个外围设备120、125是共享访问通路。选择信号通常与任何特定访问请求关联输出,以便标识要接收那个访问请求的外围设备。因此,如果通过外围总线105输出的访问请求将由外围设备120接收,则相应的选择信号通过通路110发出,而如果访问请求将由外围设备125接收,则选择信号将通过通路115输出。
如果允许桥接器95以比它可通过外围总线输出访问请求的更高速率从互连电路25接收访问请求,则桥接器95可配备队列机构,以便存储等待通过外围总线分发的访问请求。在这类情况下,仲裁器100可设置在桥接电路95中,用于执行在访问请求之间进行仲裁的多周期仲裁操作。
在图1的以上描述中,描述了可能需要多周期仲裁的三个示例位置。大家会理解,这些不是数据处理装置中可能需要这种多周期仲裁的唯一位置,而只是要提供可能需要这种仲裁的一些实例。
如前面所述,由于数据处理系统倾向于工作在越来越高的频率的事实,这引起在多个周期中执行仲裁的需要,因为通常的情况是,当数据处理装置运行在这类高频时,所需仲裁操作无法在单个周期中执行。为了保持吞吐量,可通过流水线方式来设置各仲裁器35、80、100,以便具有多个流水线级,从而允许相应的多个多周期仲裁操作在任一时刻都在进行。这使得能够实现通过仲裁器的连续吞吐量,但是这种方法的一个副作用在于,下一个访问的仲裁必须在知道前一个仲裁的结果之前开始。
这样一种方法可能产生的问题在于,耦合到共享访问通路的各种资源可能无法每一个时钟周期接收访问请求,并且实际上一旦被仲裁,则与那些资源关联的内部访问定时参数可使特定资源对于后续某个数量的时钟周期是不可访问的。为了保持高吞吐量,有益的是不选择针对已经占用并无法接收那个访问请求的资源的访问请求作为仲裁过程的胜出(winning)访问请求,因为这只是引起使胜出访问请求因上述内部访问定时参数限制而被停止。根据本发明的实施例,通过结合仲裁电路来使用过滤器机构,这个问题得到缓解,下面更详细地进行论述。
具体来说,为了便于说明,现在参照图2更详细地考虑存储控制器75中的仲裁器80的操作。SDRAM 90通常由多个芯片组成,各芯片通常具有多个存储体,以及各存储体具有可存储数据的多个可寻址行和列。因此,在这个实例中,共享访问公共访问通路85的多个资源是设置在SDRAM 90中的各个存储体。
如图2所示,总线接口200设置在存储控制器75中,用于与互连电路25接口,因此,主逻辑单元10、15、20的任一个向SDRAM90发出的任何访问请求首先由存储控制器75的总线接口200从互连25接收。此后,将这些访问请求放入队列210。仲裁器230设置成执行多周期仲裁操作,以便为复用器260生成适当的控制信号,使得每当执行仲裁操作时,将队列中的访问请求之一选作胜出访问请求并转发给存储器接口280,以便路由到SDRAM 90。存储器接口280在向SDRAM 90发出各访问请求之前相对它们执行定时校验。
如图2所示,根据本发明的实施例提供过滤器机构220,用于审查队列210中的访问请求,并确定那些访问请求中的哪一个要转发到仲裁器230进行仲裁。过滤器机构220具有多种过滤器状态,并且过滤器状态的数量取决于仲裁电路的流水线级数量。在这个实例中,仲裁电路230示为具有通过寄存元件245分隔的两个流水线级240、250,寄存元件245用于存储在一个时钟周期结束时来自第一流水线级240的输出,那个输出然后在下一个时钟周期被输入第二流水线级250。第一流水线级240执行第一仲裁功能,然后第二流水线级执行第二仲裁功能,这第一和第二仲裁功能共同执行所需的仲裁操作。在提供两个流水线级的这个实例中,通常存在为过滤器机构220提供的两种过滤器状态。
共享公共访问通路的资源的每个则与过滤器机构的过滤器状态之一关联。如前面所述,SDRAM 90的各存储体可被认为是独立资源,因此各存储体与过滤器状态之一关联。
然后,当仲裁操作的新的迭代将由仲裁电路230执行时,过滤器电路220选择过滤器状态之一,所选状态没有被选择用于仲裁电路的流水线级中已经在进行的仲裁操作的其它任何迭代。过滤器机构220则审查队列210中的访问请求,以便确定各访问请求针对哪一个资源,并寻求访问与所选过滤器状态关联的资源的那些访问请求作为候选访问请求。
因此,考虑仲裁器230具有两个流水线级的图2所示的具体实例,过滤器机构220则确定没有与将进入第二流水线级250的仲裁操作的迭代关联使用的过滤器状态作为将进入第一流水线级240的仲裁操作的迭代的过滤器状态。因此,可确保由进入第一流水线级240的仲裁操作的迭代所考虑的候选访问请求不会寻求访问可能被经由第二流水线级250中的仲裁操作的迭代所确定的胜出访问请求所访问的任何资源。因此这确保相同的SDRAM存储体不会被选择用于两个连续循环中的访问。这降低了向SDRAM 90发出的访问被停止的风险。实际上,如果各存储体的内部访问定时参数允许它每两个周期接收访问,则不会发生这种停止,因为根据上述技术,没有一个存储体会在每两个周期接收到一个以上访问请求。即使在进行关于第二访问的判定时不知道第一访问中选择了哪一个存储体,这也是可行的,因为使用多个过滤器状态确保在两个连续周期中没有访问相同的存储体。
图3A示意示出寻求访问SDRAM 90的访问请求发出的地址300中所提供的字段。在这个实例中,地址是32位地址,并且具有标识要访问的SDRAM 90的特定芯片的字段310、标识要访问的那个芯片中特定存储体的字段320、标识所选存储体的行的字段330以及标识所选存储体的列的字段340。在这个实例中,假定以32位量(quantities)在SDRAM 90中访问数据,因此,地址的两个最低有效不相干(因为这两个位只标识32位量中的特定字节)。
图3B示出SDRAM 90的一个具体实例,其中,SDRAM具有四个芯片350、360、370、380,其中的每个包含四个存储体。因此,在这个实例中,地址的芯片字段310的长度为两位,以及地址的存储体字段320的长度为两位。
如前面参照图2所述,在仲裁器具有两个流水线级的图2所示实例中,通常存在与过滤器机构220关联的两种过滤器状态。在一个实施例中,一种过滤器状态与具有偶数存储体地址的存储体关联,而另一种过滤器状态与具有奇数存储体地址的存储体关联。因此,考虑图3B的实例,存储体0和2与一种过滤器状态关联,而存储体1和3与另一种过滤器状态关联,以及在分析队列210中的访问请求时,过滤器机构220只需要查看存储体字段320的最低有效位,以便估计访问偶数存储体还是奇数存储体。
在一个备选实施例中,一种过滤器状态可与偶数芯片地址上的芯片关联,而另一种过滤器状态可与奇数芯片地址上的芯片关联。再次考虑图3B的实例,只需要过滤器机构220查看芯片字段310的最低有效位,以便确定访问芯片0还是芯片2或者访问芯片1还是芯片3。
此外,大家会理解,如果两个以上流水线级设置在仲裁器230中,则为过滤器机构220提供两种以上过滤器状态。作为一个实例,如果仲裁器230包含四个流水线级,则为过滤器机构220提供四种过滤器状态。考虑图3B的实例,各过滤器状态可与特定存储体关联,以及过滤器机构则在确定哪一个资源将由访问请求进行访问时,查看访问请求所指定的地址存储体字段320的两个位。或者,各过滤器状态可与特定芯片关联,以及在寻求选择仲裁操作的任何特定迭代的候选访问请求时,可由过滤器机构220分析芯片字段310的两个位。
设置在桥接电路95中的仲裁机构可与图2的存储控制器75的仲裁机构相似的方式来构成,具体来说可包括相同的队列210、过滤器机构220、仲裁器230和复用器260。
考虑设置在互连25中的仲裁机构,通常不存在与队列210相似的任何队列,因为多个访问请求从同时断言访问请求作为对复用器30的输入的多个主装置10、15、20产生。过滤器机构只设置成窥探(snoop)路由到复用器30的访问请求中所提供的地址的特定位,以便确定访问哪些资源,然后根据这时应用哪一种过滤器状态来选择候选访问请求,随后,仲裁器35则以参照图2的仲裁器230所述的相同方式进行操作,以便为复用器30产生控制信号。
图4是示出根据本发明的一个实施例、可由仲裁电路及关联过滤器机构执行的过程的流程图。在步骤400,确定是否存在等待仲裁的任何访问请求。假定存在,则在步骤410确定在仲裁器的流水线级中当前是否存在正进行的任何仲裁操作。如果没有,则根据图4所示的实施例,不选择过滤器状态,而是在步骤420,仲裁器在当前等待仲裁的所有访问请求之间执行仲裁,随后该过程返回到步骤400。
但是,如果在步骤410确定在仲裁流水线中存在至少一个仲裁操作正在进行,则在步骤430,过滤器机构在考虑了已经与仲裁器中正进行的仲裁操作关联的任何过滤器状态的情况下选择过滤器状态。具体来说,过滤器机构选择当前没有由已经在进行的任何这种仲裁操作所使用的过滤器状态。另外,根据图4所示的实施例,在假定存在允许选择与已经在进行的仲裁操作关联的给定过滤器状态的一种以上过滤器状态的情况下,过滤器机构选择考虑了等待仲裁的访问请求的过滤器状态。例如,如果过滤器机构能够在两种过滤器状态之间进行选择,但等待仲裁的所有或大多数访问请求正寻求访问与那两种过滤器状态中特定的一个关联的资源,则在这个实施例中,过滤器机构选择那种特定过滤器状态。
此后,在步骤440,过滤器机构使用所选过滤器状态过滤(filter)访问请求,以便生成候选访问请求供仲裁器考虑。具体来说,在等待仲裁的所有访问请求中,过滤器机构仅选择寻求访问与所选过滤器状态关联的资源的那些访问请求作为候选访问请求。
然后,在步骤450,仲裁器在过滤器机构输出的候选访问请求之间执行仲裁,此后,该过程返回到步骤400。
从本发明的实施例的以上描述中会理解,,这类实施例允许进行高频流水线仲裁,而没有引起被访问资源中的停止的可能。例如,考虑作为资源的SDRAM存储器的存储体,这类技术保证在连续仲裁周期中不会访问相同存储体。具体来说,使用上述过滤器机构,即使在下一个仲裁周期中不知道第一仲裁周期中选取的准确存储体地址,也可保证在下一个仲裁周期中所选的存储体地址与第一仲裁周期中所选的不同。
虽然本文描述了一个具体实施例,但是大家会理解,本发明不限于此,而且在本发明的范围之内可对它进行许多修改和添加。例如,可进行以下从属权利要求的特征与独立权利要求的特征的各种组合,而没有背离本发明的范围。
Claims (10)
1.一种数据处理装置,包括:
共享公共访问通路的多个资源;
至少一个逻辑元件,用于发出请求访问所述资源的访问请求,各访问请求标识要访问所述资源的哪一个;
仲裁电路,用于执行在通过所述公共访问通路传递的多个访问请求之间进行仲裁的多周期仲裁操作,所述仲裁电路具有多个流水线级,以便允许相应的多个多周期仲裁操作在任一时刻正在进行,各流水线级执行相应的仲裁功能,使得与多个流水线级对应的多个仲裁功能共同执行多周期仲裁操作,从而从所述多个访问请求中选择胜出访问请求以准许访问其所标识的资源;
具有多种过滤器状态的过滤器电路,过滤器状态的数量至少等于所述仲裁电路的流水线级数量,并且各资源与所述过滤器状态之一关联;
对于要由所述仲裁电路执行的新的多周期仲裁操作,所述过滤器电路选择所述过滤器状态中的、没有被选择用于所述仲裁电路的流水线级中已经在进行的其它任何多周期仲裁操作并且还没有针对其选择胜出访问请求的一个过滤器状态,确定寻求访问与所选择的过滤器状态关联的资源的那些访问请求作为所述新的多周期仲裁操作的候选访问请求,并且将所述候选访问请求提供给所述仲裁电路作为针对新的多周期仲裁操作的所述多个访问请求。
2.如权利要求1所述的数据处理装置,其中,在选择所述过滤器状态之一时,所述过滤器电路还考虑寻求由所述访问请求所访问的所述资源。
3.如权利要求1所述的数据处理装置,其中,如果在所述新的多周期仲裁操作将由所述仲裁电路开始时,在所述仲裁电路的流水线级中没有其它多周期仲裁操作已经在进行,则所述过滤器电路设置成不是选择一种过滤器状态,而是允许由所述新的多周期仲裁操作考虑所有等待仲裁的访问请求。
4.如权利要求1所述的数据处理装置,其中:
所述多个资源由至少一个存储装置提供,并且每个共享资源包括所述至少一个存储装置的存储体;
各过滤器状态与所述存储体的子集关联;
所述仲裁电路设置在所述至少一个存储装置的存储控制器中;以及
所述共享访问通路包括所述存储控制器与所述至少一个存储装置之间的通路。
5.如权利要求4所述的数据处理装置,其中:
每个存储装置包括动态RAM存储电路,其中动态RAM存储电路包括多个存储体。
6.如权利要求4所述的数据处理装置,其中:
所述仲裁电路具有两个流水线级;
所述存储体通过存储体地址标识;以及
所述至少一个存储装置中具有偶数存储体地址的所有存储体与第一过滤器状态关联,而所述至少一个存储装置中具有奇数存储体地址的所有存储体与第二过滤器状态关联。
7.如权利要求1所述的数据处理装置,其中:
各资源包括连接到外围总线的外围单元;
所述仲裁电路设置在将所述外围总线与互连电路连接的桥接电路中,其中所述至少一个逻辑元件通过所述互连电路发出所述访问请求;以及
所述公共访问通路包括所述外围总线。
8.如权利要求1所述的数据处理装置,其中,等待仲裁的所述访问请求保存在所述仲裁电路的缓冲器中。
9.如权利要求1所述的数据处理装置,其中:
所述至少一个逻辑元件包括经由互连电路与所述多个资源连接的多个逻辑元件;
所述公共访问通路是所述互连电路中在所述多个资源之间共享的连接通路;以及
所述仲裁电路设置在所述互连电路中,以便在所述多个逻辑元件发出并通过所述连接通路传递的多个访问请求之间进行仲裁。
10.一种在寻求访问数据处理装置中共享公共访问通路的多个资源的多个访问请求之间进行仲裁的方法,每个访问请求标识要访问所述资源的哪一个,所述方法包括以下步骤:
在仲裁电路中执行在通过所述公共访问通路传递的多个访问请求之间进行仲裁的多周期仲裁操作,所述仲裁电路具有多个流水线级,以便允许相应的多个多周期仲裁操作在任一时刻正在进行,各流水线级执行相应的仲裁功能,使得与多个流水线级对应的多个仲裁功能共同执行多周期仲裁操作,从而从所述多个访问请求中选择胜出访问请求以准许访问其所标识的资源;
提供多种过滤器状态,过滤器状态的数量至少等于所述仲裁电路的流水线级数量,并且各资源与所述过滤器状态之一关联;
对于要由所述仲裁电路执行的新的多周期仲裁操作,选择所述过滤器状态中的、没有被选择用于所述仲裁电路的流水线级中已经在进行的其它任何多周期仲裁操作并且还没有针对其选择胜出访问请求的一个过滤器状态,确定寻求访问与所选择的过滤器状态关联的资源的那些访问请求作为所述新的多周期仲裁操作的候选访问请求,并且将所述候选访问请求提供给所述仲裁电路作为针对新的多周期仲裁操作的所述多个访问请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0705536.1 | 2007-03-22 | ||
GB0705536A GB2447690B (en) | 2007-03-22 | 2007-03-22 | A Data processing apparatus and method for performing multi-cycle arbitration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101271434A CN101271434A (zh) | 2008-09-24 |
CN101271434B true CN101271434B (zh) | 2013-02-27 |
Family
ID=38024656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810087374.6A Active CN101271434B (zh) | 2007-03-22 | 2008-03-20 | 用于执行多周期仲裁的数据处理装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8667199B2 (zh) |
JP (1) | JP4976325B2 (zh) |
CN (1) | CN101271434B (zh) |
GB (1) | GB2447690B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2454818B (en) * | 2008-01-15 | 2012-09-19 | Ibm | Arbiter circuitry and method to reduce latency when processing direct memory access requests on a main memory of a data processing system |
JP5625766B2 (ja) * | 2010-11-08 | 2014-11-19 | ソニー株式会社 | アービトレーション回路、および、その制御方法 |
US10268604B2 (en) | 2015-07-09 | 2019-04-23 | Oracle International Corporation | Adaptive resource management in a pipelined arbiter |
US10176132B2 (en) * | 2015-12-26 | 2019-01-08 | Intel Corporation | Configuration arbiter for multiple controllers sharing a link interface |
FR3093830B1 (fr) * | 2019-03-11 | 2021-03-12 | St Microelectronics Rousset | Procédé de gestion d’accès à un bus partagé, et dispositif électronique correspondant |
CN113051195A (zh) * | 2021-03-02 | 2021-06-29 | 长沙景嘉微电子股份有限公司 | 存储器、gpu及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1301364A (zh) * | 1997-09-05 | 2001-06-27 | 索尼克斯公司 | 具有实时动态带宽分配的全流水线固定等待时间的通信系统 |
US7120714B2 (en) * | 2003-05-27 | 2006-10-10 | Intel Corporation | High-speed starvation-free arbiter system, rotating-priority arbiter, and two stage arbitration method |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3144794B2 (ja) * | 1990-11-09 | 2001-03-12 | 株式会社日立製作所 | マルチプロセッサシステム |
JP2555941B2 (ja) | 1993-08-06 | 1996-11-20 | 日本電気株式会社 | バスアービトレーション方式 |
US5473762A (en) * | 1994-01-25 | 1995-12-05 | Apple Computer Inc. | Method and system for pipelining bus requests |
US6029217A (en) * | 1994-10-03 | 2000-02-22 | International Business Machines Corporation | Queued arbitration mechanism for data processing system |
US5710891A (en) * | 1995-03-31 | 1998-01-20 | Sun Microsystems, Inc. | Pipelined distributed bus arbitration system |
US5901295A (en) * | 1995-04-28 | 1999-05-04 | Apple Computer, Inc. | Address and data bus arbiter for pipelined transactions on a split bus |
US5815674A (en) * | 1996-07-15 | 1998-09-29 | Micron Electronics, Inc. | Method and system for interfacing a plurality of bus requesters with a computer bus |
JP2001184300A (ja) * | 1999-12-27 | 2001-07-06 | Hitachi Ltd | データ処理プロセッサ |
JP3999943B2 (ja) | 2001-03-13 | 2007-10-31 | 株式会社東芝 | マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法 |
US6820152B2 (en) * | 2001-04-25 | 2004-11-16 | Matsushita Electric Industrial Co., Ltd. | Memory control device and LSI |
JP2003271545A (ja) | 2002-03-12 | 2003-09-26 | Hitachi Ltd | データ処理システム |
DE60211874T2 (de) * | 2002-06-20 | 2007-05-24 | Infineon Technologies Ag | Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter |
US6950892B2 (en) | 2003-04-10 | 2005-09-27 | International Business Machines Corporation | Method and system for managing distributed arbitration for multicycle data transfer requests |
US20050091432A1 (en) * | 2003-10-28 | 2005-04-28 | Palmchip Corporation | Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs |
JP2006011593A (ja) | 2004-06-23 | 2006-01-12 | Sony Corp | メモリ制御装置 |
-
2007
- 2007-03-22 GB GB0705536A patent/GB2447690B/en active Active
-
2008
- 2008-03-18 US US12/076,391 patent/US8667199B2/en active Active
- 2008-03-20 CN CN200810087374.6A patent/CN101271434B/zh active Active
- 2008-03-21 JP JP2008073601A patent/JP4976325B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1301364A (zh) * | 1997-09-05 | 2001-06-27 | 索尼克斯公司 | 具有实时动态带宽分配的全流水线固定等待时间的通信系统 |
US7120714B2 (en) * | 2003-05-27 | 2006-10-10 | Intel Corporation | High-speed starvation-free arbiter system, rotating-priority arbiter, and two stage arbitration method |
Also Published As
Publication number | Publication date |
---|---|
GB2447690B (en) | 2011-06-08 |
JP2008234660A (ja) | 2008-10-02 |
JP4976325B2 (ja) | 2012-07-18 |
CN101271434A (zh) | 2008-09-24 |
US20080235707A1 (en) | 2008-09-25 |
US8667199B2 (en) | 2014-03-04 |
GB0705536D0 (en) | 2007-05-02 |
GB2447690A (en) | 2008-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4083987B2 (ja) | 多重レベル接続識別を備えた通信システム | |
CN100472494C (zh) | 支持多总线多类型存储器的内存仲裁实现系统和方法 | |
JP5036120B2 (ja) | 非ブロック化共有インターフェイスを持つ通信システム及び方法 | |
US7269709B2 (en) | Memory controller configurable to allow bandwidth/latency tradeoff | |
US8452907B2 (en) | Data processing apparatus and method for arbitrating access to a shared resource | |
US7290075B2 (en) | Performing arbitration in a data processing apparatus | |
CN101271434B (zh) | 用于执行多周期仲裁的数据处理装置和方法 | |
CN111742305A (zh) | 调度具有不统一等待时间的存储器请求 | |
JP2009508247A (ja) | バス調停に関する方法及びシステム | |
US7039737B1 (en) | Method and apparatus for resource arbitration | |
US10922258B2 (en) | Centralized-distributed mixed organization of shared memory for neural network processing | |
JP2007220046A (ja) | バス装置、バスシステムおよび情報転送方法 | |
JP2023156472A (ja) | 同じチャネルで不均一なレイテンシを有するメモリタイプのための応答のサポート | |
JP4560498B2 (ja) | 共有メモリ装置のための仲裁スキーム | |
US10243758B2 (en) | Apparatus and method for filtering transactions | |
US9858222B2 (en) | Register access control among multiple devices | |
US20100169525A1 (en) | Pipelined device and a method for executing transactions in a pipelined device | |
US7779189B2 (en) | Method, system, and computer program product for pipeline arbitration | |
JP5383159B2 (ja) | バス中継装置及び制御方法 | |
JP2004348745A (ja) | 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法 | |
US7975086B1 (en) | Apparatus for real-time arbitration between masters and requestors and method for operating the same | |
US6839820B1 (en) | Method and system for controlling data access between at least two memory arrangements |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180528 Address after: cambridge Co-patentee after: Anne science and Technology (China) Co., Ltd. Patentee after: Advanced Risc Machines Ltd. Address before: Cambridge County Patentee before: Advanced Risc Machines Ltd. |