专利名称:用于执行多周期仲裁的数据处理装置和方法
技术领域:
本发明涉及用于执行多周期仲裁的数据处理装置和方法,特别是 涉及用于在通过多个资源共享的公共访问通路传递的多个访问请求之 间执行这种仲裁的数据处理装置和方法。
背景技术:
在数据处理装置中,情况往往是数据处理装置中的多个资源共享 公共访问通路(本文中又称作共享访问通路)。例如,数据处理装置中 的多个逻辑元件、如多个主装置可共享对于由一个或多个存储装置组成的存储器的访问,那些存储装置的每个包括多个存储体(bank)。在这 个实例中,存储装置的各存储体可被认为是共享资源。对这种存储器 的访问通常由存储控制器控制,使得各种逻辑元件发出的、寻求对存 储器的访问的任何访问请求由存储控制器接收,存储控制器通常包括 用于在向存储器发出访问请求之前对它们进行緩冲的队列。在存储控 制器与存储器之间往往存在单个连接通路,因此这个连接通路形成到 存储器中包含的多个存储体的公共访问通路。作为共享访问通路的另 一个实例,许多数据处理装置提供互连电 路,用于耦合设置在装置中的各个主逻辑单元和从(slave)逻辑单元, 其中互连电路提供多个连接通路,通过连接这些通路可建立主逻辑单 元与从逻辑单元之间的通信。连接通路的一部分通常在多个逻辑单元 之间共享,如通常在单层互连中的情况那样。作为共享访问通路的另 一个实例,多个外围设备可连接到外围总 线。外围总线往往经由桥接电路连接到主系统总线,以及送往那些外 围设备的任何访问请求首先由桥接电路接收,桥接电路则通过外围总线向适当的外围设备一次一个地发出访问请求。由于任何特定时间只 有 一个访问请求可经由外围总线传播,所以外围总线形成共享访问通 路。在数据处理装置中出现共享访问通路的上述三个实例仅作为实例 来提供,而不是要表示在数据处理装置中产生共享访问通路的情况的 详尽列表。无论这样一种共享访问通路存在于什么位置,通常需要提供用于 执行仲裁操作的仲裁电路,以便在通过那个共享访问通路传递的多个 访问请求之间进行仲裁。当数据处理装置的组件的工作频率增加时,变得越来越难以在单 个时钟周期中执行所需仲裁操作。因此,有必要提供执行作为多周期 操作的仲裁操作的仲裁电路。为了取得连续的吞吐量,下一个访问的 仲裁必须在知道前一个仲裁操作的结果之前开始。为此,可为仲裁电路提供多个流水线级(pipeline stage),以便允许相应的多个多周期仲裁 操作在任一时刻都在进行。。但是,共享公共访问通路的资源往往是这样的,使得它们无法在 每一个时钟周期接收访问请求。实际上, 一旦经由仲裁操作已经准许 访问请求对特定资源的访问权,与那个资源关联的内部访问(inter access)定时参数可使那个资源对于多个时钟周期是不可访问的。因此, 希望确保在那个周期中,仲裁电路不准许寻求访问那个特定共享资源 的另 一个访问请求的访问4又。但是,使用以上所述的流水线仲裁方法时,多个仲裁操作通常同 时正在进行,因此对于流水线中正在进行的任何特定的仲裁操作,通 常不可能在流水线中的那个特定仲裁操作之前、在需要由那个特定仲 裁操作进行判定时知道一个或多个仲裁操作的结果。因此,有可能的 是,仲裁电路的流水线级中正进行的仲裁操作的多个迭代准许寻求访 问相同共享资源的访问请求的访问权。因此,有可能的是,由仲裁电 路准许了访问权的访问请求随后可能因上述内部访问定时参数限制而 停止(stall)等待访问共享资源,如果出现这种情况,则明显影响性能。因此,在执行作为多周期操作的仲裁的情况下,希望提供一种用 于在寻求访问共享公共访问通路的多个资源的多个访问请求之间进行 仲裁的改进技术。发明内容从第一方面来看,本发明提供一种数据处理装置,包括共享公 共访问通路的多个资源;至少一个逻辑元件,用于发出请求访问所述 资源的访问请求,各访问请求标识要访问所述资源的哪一个;仲裁电 路,用于执行在通过公共访问通路传递的多个访问请求之间进行仲裁 的多周期仲裁操作,仲裁电路具有多个流水线级,以便允许相应的多 个多周期仲裁操作在任一时刻正在进行;过滤器(filter)电路,具有多个 过滤器状态,过滤器状态的数量取决于所述仲裁电路的流水线级数量, 以及各资源与所述过滤器状态之一关联;对于要由所述仲裁电路执行 的新的多周期仲裁操作,过滤器电路选择所述过滤器状态之一,所选 状态没有被选择用于仲裁电路的流水线级中已经在进行的其它任何多 周期仲裁操作,并确定正寻求访问与所述所选过滤器状态关联的资源 的那些访问请求作为新的多周期仲裁操作的候选访问请求。根据本发明提供过滤器电路,它具有多个过滤器状态,其中过滤 器状态的数量取决于仲裁电路中的流水线级数量。共享公共访问通路 的资源的每个则与那些过滤器状态之一关联。然后,对于要由仲裁电路执行的新的多周期仲裁操作,过滤器电 路选择过滤器状态之一,所选状态没有^皮选择用于仲裁电路中已经在 进行的其它任何多周期仲裁操作,然后根据那个所选过滤器状态来确 定寻求访问与那个所选过滤器状态关联的资源的那些访问请求作为仲 裁操作的候选访问请求。由于任何特定资源仅与过滤器状态之一关联,并且过滤器电路为器状态,这确保新的仲裁操作仅在寻求访问没有^皮仲裁电路中已经在 进行的其它仲裁操作的胜出访问请求的任一个所访问的资源的访问请求之间进行选择。因此,通过这样一种方法,任何特定多周期仲裁操作选择随后因 内部访问定时参数而变为停止的访问请求作为胜出访问请求的可能性 明显降低。实际上,假定任何特定资源的访问之间所需的时钟周期的 数量小于或等于执行多周期仲裁操作的周期数量(它取决于流水线深度(depth)),则这样一种方法确保不会发生这种停止,因为始终会满足 各资源的访问间定时参数。除了考虑已经被选择用于仲裁电路的流水线级中已经在进行的其 它任何多周期仲裁操作的过滤器状态之外,过滤器电路还可设置成在 选择过滤器状态之一时考虑被访问请求寻求访问的资源。例如,如果 存在四种过滤器状态O、 1、 2和3,并且过滤器状态0和1已经#1选 择用于流水线中正进行的多周期仲裁操作,则对于新的多周期仲裁操 作,过滤器电路可在过滤器状态2与3之间进行选择。但是,如果等 待仲裁的访问请求都寻求访问与过滤器状态3关联的一个或多个资 源,则在这个实施例中,过滤器电路比选择过滤器状态2更优先地选 择过滤器状态3,即使过滤器状态2可能已经是在这时要选择的缺省 过滤器状态。大家会理解,以上只是如何由过滤器电路来考虑^支访问 请求寻求访问的资源的一个实例,存在可考虑资源的其它各种方式。 例如,在给定资源坤皮各种访问请求访问的情况下,过滤器电路可根据 等待仲裁的访问请求来决定选择使最大数量的候选访问请求能够^C选 择的可用过滤器状态。在一个实施例中,过滤器电路可设置成为每一个新的多周期仲裁 操作选择一种过滤器状态。但是,在一个实施例中,如果在新的仲裁 操作将由所述仲裁电路开始时,在仲裁电路的流水线级中没有其它多 周期仲裁操作已经在进行,则过滤器电路设置成不是选择一种过滤器 状态,而是允许由新的多周期仲裁操作考虑所有等待仲裁的访问请求。 这允许更有效地仲裁在那种特定情况(scenario)中等待仲裁的访问请 求,因为在那种情况下,不需要仅在等待仲裁的访问请求的子集之间 进行仲裁。共享公共访问通路的多个资源可采取各种形式。但是,在一个实施例中,所述多个资源由至少一个存储装置提供,并且每个共享资源 包括至少一个存储装置的存储体。在一个这样的实施例中,每个过滤 器状态与存储体子集关联,仲裁电路设置在至少一个存储装置的存储 控制器中,并且共享访问通路包括存储控制器与至少一个存储装置之 间的通路。存在包括多个存储体的许多不同类型的存储装置。在一个实施例中,每个存储装置包括动态随机存取存储器(DRAM)存储电路,它包 括多个存储体。DRAM可以是与发出访问请求的逻辑元件芯片上 (on-chip)提供的嵌入DRAM,或者可以是芯片外(off-chip)DRAM。通 常芯片外提供的一种具体类型的DRAM是同步DRAM(SDRAM), SDRAM存储装置通常与时钟速度同步,与存储装置配合使用的处理 装置对于该时钟速度进行了优化。SDRAM存储器通常由多个独立芯 片组成,每个这种芯片组成独立存储装置,并且各芯片包括多个存储 体。向这种SDRAM存储器发出的访问请求指定某个地址,该地址的 一部分指定SDRAM存储器的特定芯片,以及该地址的另一部分指定 那个芯片的特定存储体。该地址的其它部分则指定已标识存储体中的 行和列。在每个共享资源包括存储装置的存储体的实施例中,大家会理解, 各存储体与过滤器状态之一关联。因此,通过确保选择用于新的多周期仲裁操作的过滤器状态不同于选择用于已经在进行的其它多周期仲 裁操作的任何过滤器状态,可确保新的多周期仲裁操作的任何候选访 问请求不会寻求访问与正运行的那些其它多周期仲裁操作的任一个可 能访问的相同的存储体。因此,特定存储体一旦^L仲裁则对于多个时 钟周期可能是不可访问的事实不会引起任何性能问题,原因在于,由 于将过滤器状态选择为选取多周期仲裁操作的每个迭代的候选访问请 求的方式,寻求访问那个特定存储体的另 一个访问请求在那个时间段 不会纟皮选取。在一个特定实施例中,仲裁电路具有两个流水线级,存储体由存储体地址标识,以及至少 一个具有偶数存储体地址的存储装置的所有 存储体与第 一过滤器状态关联,而至少 一个具有奇数存储体地址的存 储装置的所有存储体与第二过滤器状态关联。当过滤器电路审查等待 仲裁的访问请求以确定它们是寻求访问偶数存储体还是奇数存储器 时,只需要查看访问请求所指定的存储体地址的最低有效位。大家会理解,对于由多个芯片组成的SDRAM存储器,类似的方 案可将具有偶数芯片地址的所有存储体设置成与第一过滤器状态关 联,将具有奇数芯片地址的所有存储体设置成与第二过滤器状态关联, 所需的只是审查访问请求所指定的地址的芯片地址部分的最低有效在一个备选实施例中,共享公共访问通路的多个资源的每个包括 连接到外围总线的外围单元,仲裁电路设置在将外围总线与互连电路 连接的桥接电路中,其中至少一个逻辑元件通过互连电路发出访问请 求,以及共享访问通路包括外围总线。如前面所述,通常的情况是, 一次只有一个访问请求可通过外围 总线传播,因此,如果多个外围单元连接到外围总线,则在多个访问 请求等待路由到适当外围单元时可能需要在桥接电路中进行仲裁。每个外围单元通常不能每一个周期接收访问请求。作为 一个实例, 外围单元的每个可以只能够每两个周期接收一个访问。实际上,在一 些实施例中,这类外围单元工作在比数据处理装置的其余部分更慢的 时钟频率,因此这两个慢时钟周期可等同于数据处理装置的其余部分 的2N个快时钟周期,其中N是数据处理装置的快时钟周期与外围单 元的慢时钟周期之间的比率。在上述存储器存储体和外围单元的两个实例中,可能从单个逻辑 元件或者从多个不同的逻辑元件发出了等待仲裁的多个访问请求。在 一个实施例中,等待仲裁的访问请求保存在仲裁电路的緩沖器中。具 体来说,考虑存储器芯片的实例,緩冲器可设置在包含仲裁电路的存 储控制器中。类似地,对于外围单元的实例,緩沖器可设置在包含仲 裁电路的桥接电路中。緩冲器可采取各种形式,但在一个实施例中作为队列来提供。根据另 一个实施例,多个逻辑元件经由互连电路与多个资源连接, 共享访问通路是所述互连电路中、所述多个资源之间共享的连接通路, 以及仲裁电路设置在所述互连电路中,以便在所述多个逻辑元件发出 并通过所述连接通路传递的多个访问请求之间进行仲裁。在这个实例中,等待仲裁的多个访问请求的存在由多个逻辑元件 同时发出访问请求引起。如果与耦合到连接通路的各个资源关联的内 部访问定时参数是这样的,使得它们使特定资源在接收到访问请求之 后对于某些时钟周期是不可访问的,则根据本发明的实施例使用过滤 器状态同样可确保仲裁电路不准许访问请求的访问权,访问请求仅变 成停止等待访问该资源。从第二方面来看,本发明提供一种在寻求访问数据处理装置中共 享公共访问通路的多个资源的多个访问请求之间进行仲裁的方法,每个访问请求标识要访问所述资源的哪一个,该方法包括以下步骤在行仲裁的多周期仲裁操作,仲裁电路具有多个流水线级,以便允许相应的多个多周期仲裁操作在任一时刻正在进行;提供多个过滤器状态,过滤器状态的数量取决于所述仲裁电路的流水线级数量,以及各资源与所述过滤器状态之一关联;对于要由所述仲裁电路执行的新的多周 期仲裁操作,选择所述过滤器状态之一,所选状态没有被选择用于仲 裁电路的流水线级中已经在进行的其它任何多周期仲裁才乘作,并确定 正寻求访问与所述所选过滤器状态关联的资源的那些访问请求作为新 的多周期仲裁操作的候选访问请求。从第三方面来看,本发明提供一种数据处理装置,包括共享公 共访问通路的多个资源部件;至少一个逻辑部件,用于发出请求访问 所述资源部件的访问请求,各访问请求标识要访问所述资源部件的哪 一个;仲裁部件,用于执行在通过7>共访问通路传递的多个访问请求 之间进行仲裁的多周期仲裁操作,仲裁部件具有多个流水线级部件, 用于允许相应的多个多周期仲裁操作在任一时刻正在进行;过滤器部件,具有多个过滤器状态,过滤器状态的数量取决于所述仲裁部件的 流水线级部件数量,以及各资源部件与所述过滤器状态之一关联;对 于要由所述仲裁部件执行的新的多周期仲裁操作,过滤器部件选择所 述过滤器状态之一,所选状态没有^皮选择用于仲裁部件的流水线级部 件中已经在进行的其它任何多周期仲裁操作,并确定正寻求访问与所 述所选过滤器状态关联的资源部件的那些访问请求作为新的多周期仲 裁操作的候选访问请求。
仅作为实例、参照附图所示的本发明的实施例进一步描述本发明,附图包括图1是根据本发明的一个实施例的数据处理装置的框图; 图2是根据本发明的一个实施例、更详细示出图1的存储控制器 75的框图;图3A示意示出寻求访问图1的SDRAM 90的访问请求所提供的 地址的若干部分;图3B是根据本发明的一个实施例、示出图1的SDRAM 90中设 置的芯片和存储体的简图;以及图4是根据本发明的一个实施例示出的仲裁电路及关联过滤器机 构的操作的流程图。
具体实施方式
图1是根据本发明的一个实施例的数据处理装置的框图,并示出 数据处理装置中可执行多周期仲裁的各个位置。但是,大家会理解, 本发明的实施例的仲裁电路和过滤器电路可用于在数据处理装置中多 个资源共享公共访问通路的任何位置。为了说明本发明的一个具体实施例,参照图1来考虑数据处理装 置,其中具有经由互连电路25与多个/人逻辑单元65、 70、 75、 95耦 合的多个主逻辑单元IO、 15、 20。互连电路通常提供用于耦合各个主逻辑单元和从逻辑单元的多个连接通路,以便使事务(transaction)能够 #史执行。各事务通常包括从主逻辑单元到从逻辑单元的地址转换以及 主逻辑单元与从逻辑单元之间的一个或多个数据传输。对于写事务 (write transaction),这些数据传输从主逻辑单元传递到从逻辑单元(在一 些实现中,还存在由从逻辑单元到主逻辑单元的写响应(write response) 传输),而对于读事务,这些数据传输由从逻辑单元传递给主逻辑单元。经由互连电路的连接通路路由各事务的各个传输的方式取决于互 连电路中使用的总线协议。两种已知类型的总线协议是非分离 (non-split)事务协议,其中,在事务的地址转换与那个事务的后续一个 或多个数据传输之间存在固定的定时关系;以及分离事务协议,其中, 提供独立的地址信道和数据信道,并且数据传输的定时相对特定事务 的地址转换的定时是分离的。在本发明的一个实施例中,互连电路具有单层互连结构,以及在 图1的互连电路25中,示出那个单层结构的特定部分。具体来说,示 出该结构的一部分,因此,三个主逻辑单元IO、 15、 20的任一个可访 问从逻辑单元二 65或从逻辑单元三70。复用器30设置成4lr收主逻辑 单元IO、 15、 20发出的任何访问请求,这类访问请求例如是发起事务 的地址转换。应用多周期仲裁操作的仲裁器35用来控制复用器30, 以便在主逻辑单元IO、 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中,以便执行多周期仲裁操作。又如图l所示,从逻辑单元之一可以是桥接电路95,它接收经由 互连25路由的访问请求,然后经由外围总线105将那些访问请求输出 给连接到那个外围总线的外围设备120、 125中适当的一个。在任何特 定时间点只有一个访问请求可经由外围总线输出,因此外围总线105 对于各个外围设备120、 125是共享访问通路。选择信号通常与任何特 定访问请求关联输出,以便标识要接收那个访问请求的外围设备。因 此,如果通过外围总线105输出的访问请求将由外围设备120接收, 则相应的选择信号通过通路110发出,而如果访问请求将由外围设备 125接收,则选择信号将通过通路115输出。如果允许桥接器95以比它可通过外围总线输出访问请求的更高 速率从互连电路25接收访问请求,则桥接器95可配备队列机构,以 便存储等待通过外围总线分发的访问请求。在这类情况下,仲裁器100 可设置在桥接电路95中,用于执行在访问请求之间进行仲裁的多周期 仲裁操作。在图1的以上描述中,描述了可能需要多周期仲裁的三个示例位 置。大家会理解,这些不是数据处理装置中可能需要这种多周期仲裁 的唯一位置,而只是要提供可能需要这种仲裁的一些实例。如前面所述,由于数据处理系统倾向于工作在越来越高的频率的 事实,这引起在多个周期中执行仲裁的需要,因为通常的情况是,当 数据处理装置运行在这类高频时,所需仲裁操作无法在单个周期中执 行。为了保持吞吐量,可通过流水线方式来设置各仲裁器35、 80、 100, 以便具有多个流水线级,从而允许相应的多个多周期仲裁操作在任一 时刻都在进行。这使得能够实现通过仲裁器的连续吞吐量,但是这种 方法的一个副作用在于,下一个访问的仲裁必须在知道前一个仲裁的 结果之前开始。这样一种方法可能产生的问题在于,耦合到共享访问通路的各种 资源可能无法每一个时钟周期接收访问请求,并且实际上一旦^L仲裁, 则与量的时钟周期是不可访问的。为了保持高吞吐量,有益的是不选择针的胜出(winning)访问请求,因为这只是S1起使胜出访问请求因上述内 部访问定时参数限制而^皮停止。根据本发明的实施例,通过结合仲裁 电路来使用过滤器机构,这个问题得到緩解,下面更详细地进行论述。具体来说,为了便于说明,现在参照图2更详细地考虑存储控制 器75中的仲裁器80的操作。SDRAM 90通常由多个芯片组成,各芯 片通常具有多个存储体,以及各存储体具有可存储数据的多个可寻址 行和列。因此,在这个实例中,共享访问7>共访问通路85的多个资源 是设置在SDRAM 90中的各个存储体。如图2所示,总线接口 200设置在存储控制器75中,用于与互连 电路25接口,因此,主逻辑单元IO、 15、 20的任一个向SDRAM 90 发出的任何访问请求首先由存储控制器75的总线接口 200从互连25 接收。此后,将这些访问请求放入队列210。仲裁器230设置成执行 多周期仲裁操作,以便为复用器260生成适当的控制信号,使得每当 执行仲裁操作时,将队列中的访问请求之一选作胜出访问请求并转发 给存储器接口 280,以便路由到SDRAM卯。存储器接口 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的最低有 效位,以便确定访问芯片O还是芯片2或者访问芯片l还是芯片3。此外,大家会理解,如果两个以上流水线级设置在仲裁器230中, 则为过滤器机构220提供两种以上过滤器状态。作为一个实例,如果 仲裁器230包含四个流水线级,则为过滤器机构220提供四种过滤器 状态。考虑图3B的实例,各过滤器状态可与特定存储体关联,以及过 滤器机构则在确定哪一个资源将由访问请求进行访问时,查看访问请 求所指定的地址存储体字段320的两个位。或者,各过滤器状态可与 特定芯片关联,以及在寻求选择仲裁操作的任何特定迭代的候选访问 请求时,可由过滤器机构220分析芯片字段310的两个位。设置在桥接电路95中的仲裁机构可与图2的存储控制器75的仲 裁机构相似的方式来构成,具体来说可包括相同的队列210、过滤器 机构220、仲裁器230和复用器260。考虑设置在互连25中的仲裁机构,通常不存在与队列210相似的 任何队列,因为多个访问请求从同时断言访问请求作为对复用器30的输入的多个主装置IO、 15、 20产生。过滤器机构只设置成窥探(snoop) 路由到复用器30的访问请求中所提供的地址的特定位,以便确定访问 哪些资源,然后根据这时应用哪一种过滤器状态来选择候选访问请求, 随后,仲裁器35则以参照图2的仲裁器230所述的相同方式进行操作, 以便为复用器30产生控制信号。图4是示出根据本发明的一个实施例、可由仲裁电路及关联过滤 器机构执行的过程的流程图。在步骤400,确定是否存在等待仲裁的 任何访问请求。假定存在,则在步骤410确定在仲裁器的流水线级中 当前是否存在正进行的任何仲裁操作。如果没有,则根据图4所示的 实施例,不选择过滤器状态,而是在步骤420,仲裁器在当前等待仲 裁的所有访问请求之间执行仲裁,随后该过程返回到步骤400。但是,如果在步骤410确定在仲裁流水线中存在至少一个仲裁操 作正在进行,则在步骤430,过滤器机构在考虑了已经与仲裁器中正 进行的仲裁操作关联的任何过滤器状态的情况下选择过滤器状态。具 体来说,过滤器机构选择当前没有由已经在进行的任何这种仲裁操作 所使用的过滤器状态。另外,根据图4所示的实施例,在假定存在允 许选择与已经在进行的仲裁操作关联的给定过滤器状态的一种以上过滤器状态的情况下,过滤器机构选择考虑了等待仲裁的访问请求的过 滤器状态。例如,如果过滤器机构能够在两种过滤器状态之间进行选 择,但等待仲裁的所有或大多数访问请求正寻求访问与那两种过滤器 状态中特定的一个关联的资源,则在这个实施例中,过滤器机构选择 那种特定过滤器状态。此后,在步骤440,过滤器机构使用所选过滤器状态过滤(filter)访 问请求,以便生成候选访问请求供仲裁器考虑。具体来说,在等待仲 裁的所有访问请求中,过滤器机构仅选择寻求访问与所选过滤器状态 关联的资源的那些访问请求作为候选访问请求。然后,在步骤450,仲裁器在过滤器机构输出的候选访问请求之 间执行仲裁,此后,该过程返回到步骤400。从本发明的实施例的以上描述中会理解,,这类实施例允许进行高频流水线仲裁,而没有引起碎皮访问资源中的停止的可能。例如,考虑作为资源的SDRAM存储器的存储体,这类技术保证在连续仲裁周 期中不会访问相同存储体。具体来说,使用上述过滤器机构,即使在 下一个仲裁周期中不知道第 一仲裁周期中选取的准确存储体地址,也 可保证在下一个仲裁周期中所选的存储体地址与第一仲裁周期中所选 的不同。虽然本文描述了一个具体实施例,但是大家会理解,本发明不限 于此,而且在本发明的范围之内可对它进行许多々务改和添加。例如, 可进行以下从属权利要求的特征与独立权利要求的特征的各种组合, 而没有背离本发明的范围。
权利要求
1.一种数据处理装置,包括共享公共访问通路的多个资源;至少一个逻辑元件,用于发出请求访问所述资源的访问请求,各访问请求标识要访问所述资源的哪一个;仲裁电路,用于执行在通过所述公共访问通路传递的多个访问请求之间进行仲裁的多周期仲裁操作,所述仲裁电路具有多个流水线级,以便允许相应的多个多周期仲裁操作在任一时刻正在进行;具有多种过滤器状态的过滤器电路,过滤器状态的数量取决于所述仲裁电路的流水线级数量,以及各资源与所述过滤器状态之一关联;对于要由所述仲裁电路执行的新的多周期仲裁操作,所述过滤器电路选择所述过滤器状态之一,所选状态没有被选择用于所述仲裁电路的流水线级中已经在进行的其它任何多周期仲裁操作,然后确定寻求访问与所述所选过滤器状态关联的资源的那些访问请求作为所述新的多周期仲裁操作的候选访问请求。
2. 如权利要求1所述的数据处理装置,其中,在选择所述过滤器 状态之一时,所述过滤器电路还考虑寻求由所述访问请求所访问的所 述资源。
3. 如权利要求1所述的数据处理装置,其中,如果在所述新的仲 裁操作将由所述仲裁电路开始时,在所述仲裁电路的流水线级中没有 其它多周期仲裁操作已经在进行,则所述过滤器电路设置成不是选择 一种过滤器状态,而是允许由所述新的多周期仲裁操作考虑所有等待 仲裁的访问请求。
4. 如权利要求1所述的数据处理装置,其中所述多个资源由至少 一个存储装置提供,并且每个共享资源包括 所述至少一个存储装置的存储体;各过滤器状态与所述存储体的子集关联;所述仲裁电路设置在所述至少一个存储装置的存储控制器中;以及所述共享访问通路包括所述存储控制器与所述至少 一个存储装置 之间的通路。
5. 如权利要求4所述的数据处理装置,其中 每个存储装置包括动态RAM存储电路,其中动态RAM存储电路包括多个存储体。
6. 如权利要求4所述的数据处理装置,其中 所述仲裁电路具有两个流水线级; 所述存储体通过存储体地址标识;以及所述至少 一个存储装置中具有偶数存储体地址的所有存储体与第 一过滤器状态关联,而所述至少 一个存储装置中具有奇数存储体地址 的所有存储体与第二过滤器状态关联。
7. 如权利要求1所述的数据处理装置,其中 各资源包括连接到外围总线的外围单元;所述仲裁电路设置在将所述外围总线与互连电路连接的桥接电路 中,其中所述至少一个逻辑单元通过所述互连电路发出所述访问请求; 以及所述共享访问通路包括所述外围总线。
8. 如权利要求1所述的数据处理装置,其中,等待仲裁的所述访 问请求保存在所述仲裁电路的緩冲器中。
9. 如权利要求l所述的数据处理装置,其中 所述至少一个逻辑元件包括经由互连电路与所述多个资源连接的多个逻辑元件;所述共享访问通路是所述互连电路中在所述多个资源之间共享的 连才妾通^各;以及所述仲裁电路设置在所述互连电路中,以便在所述多个逻辑元件 发出并通过所述连接通路传递的多个访问请求之间进行仲裁。
10. —种在寻求访问数据处理装置中共享公共访问通路的多个资 源的多个访问请求之间进行仲裁的方法,每个访问请求标识要访问所述资源的哪一个,所述方法包括以下步骤在仲裁电路中执行在通过所述公共访问通路传递的多个访问请求 之间进行仲裁的多周期仲裁操作,所述仲裁电路具有多个流水线级,以便允许相应的多个多周期仲裁操作在任一时刻正在进行;提供多种过滤器状态,过滤器状态的数量取决于所述仲裁电路的 流水线级数量,以及各资源与所述过滤器状态之一关联;对于要由所述仲裁电路执行的新的多周期仲裁操作,选择所述过 滤器状态之一,所选状态没有^皮选择用于所述仲裁电路的流水线级中 已经在进行的其它任何多周期仲裁操作,然后确定寻求访问与所述所 选过滤器状态关联的资源的那些访问请求作为所述新的多周期仲裁操 作的候选访问请求。
11. 一种数振处理装置,包括共享/>共访问通路的多个资源部件;至少一个逻辑部件,用于发出请求访问所述资源部件的访问请求, 各访问请求标识要访问所述资源部件的哪一个;仲裁部件,用于执行在通过所述公共访问通路传递的多个访问请 求之间进行仲裁的多周期仲裁操作,所述仲裁部件具有多个流水线级 部件,用于允许相应的多个多周期仲裁操作在任一时刻正在进行;具有多种过滤器状态的过滤器部件,过滤器状态的数量取决于所 述仲裁部件的流水线级部件数量,以及各资源部件与所述过滤器状态 之一关联;对于要由所述仲裁部件执行的新的多周期仲裁操作,所述过滤器 部件选择所述过滤器状态之一,所选状态没有一皮选择用于所述仲裁部 件的流水线级部件中已经在进行的其它任何多周期仲裁操作,然后确 定寻求访问与所述所选过滤器状态关联的资源部件的那些访问请求作 为所述新的多周期仲裁操作的候选访问请求。
全文摘要
本发明为用于执行多周期仲裁的数据处理装置和方法。提供数据处理装置和方法,用于在寻求访问共享公共访问通路的多个资源的多个访问请求之间进行仲裁。至少一个逻辑元件发出请求访问资源的标识要访问资源的哪一个的访问请求。具有多个流水线级的仲裁电路执行仲裁操作。提供具有多种过滤器状态的过滤器电路,过滤器状态的数量取决于仲裁电路的流水线级数量,各资源与过滤器状态之一关联。对于新的多周期仲裁操作,过滤器电路选择过滤器状态之一。然后确定新的多周期仲裁操作的候选访问请求。这种方法即使在资源可能具有与其关联的、阻止它们能够在每一个时钟周期接收访问请求的内部访问定时参数的情况下也允许进行有效的多周期仲裁。
文档编号G06F13/16GK101271434SQ20081008737
公开日2008年9月24日 申请日期2008年3月20日 优先权日2007年3月22日
发明者D·J·格维尔特, G·L·因格拉姆 申请人:Arm有限公司