执行仲裁的方法和装置的制作方法

文档序号:6570736阅读:122来源:国知局
专利名称:执行仲裁的方法和装置的制作方法
技术领域
本发明一般地涉及数字系统的仲裁(arbitration)技术,更具体地涉及 一种用于执行仲裁的方法和装置,该方法和装置增加了仲裁的公平性、降 低了系统等待时间、增加了系统吞吐量、并且适合用于更复杂的系统。
背景技术
仲裁通常用在数字系统中以将诸如存储器、总线和/或其它资源之类的 系统资源分配给一个以上的请求对其进行访问的代理。传统的仲裁可以基 于固定的或静态的优先级方案,其中,每一个代理具有一在制造时固定且 静态的(即,不改变的)所指派优先级。但是,这类仲裁并不是最佳的, 因为其本质上会阻止某些低优先级代理访问给定资源。其结果是,系统等 待时间会增加,并且系统吞吐量会降低。其它类型的传统仲裁可能不适合 处理更复杂的系统,例如,具有相对大量的代理的那些系统,其中的大量 代理共享特定资源。
因此,需要这样的一种用于执行仲裁的方法和装置,其解决了上述问 题,并从而增加了仲裁的公平性、降低了系统等待时间、增加了系统吞吐 量、并且适合用于更复杂的系统。本发明解决了这些和/或其它问题。

发明内容
根据本发明的一个方面,公开了一种用于执行仲裁的方法。根据一个 示例性实施例,该方法包括以下步骤生成与多个代理相对应的多个仲裁 号码;基于这些仲裁号码,选择这些代理之一以访问由这些代理共享的资 源。仲裁号码的至少一个包括与多个参数相对应的多个字段。
根据本发明另一个方面,公开了一种用于执行仲裁的装置。根据一个 示例性实施例,该装置包括用于生成与多个代理相对应的多个仲裁号码的装置;和用于基于这些仲裁号码来选择这些代理之一以访问由这些代理 共享的资源的装置。仲裁号码的至少一个包括与多个参数相对应的多个字 段。
根据本发明另一个方面,公开了一种仲裁器。根据一个示例性实施 例,该仲裁器包括发生器,操作以生成与多个代理相对应的多个仲裁号 码;和电路,操作以基于这些仲裁号码来选择这些代理之一以访问由这些 代理共享的资源。仲裁号码的至少一个包括与多个参数相对应的多个字 段。


通过参考结合附图来进行的对本发明实施例的以下描述,本发明的上 述和其它特征及优点以及获得它们的方式将变得更加清楚,在附图中 图l示出了根据本发明一个示例性实施例、适合于执行仲裁的环境; 图2示出了根据本发明一个示例性实施例的仲裁号码的格式; 图3示出了根据本发明一个示例性实施例的仲裁号码发生器; 图4示出了根据本发明一个示例性实施例、针对仲裁号码的二叉比较 树(binary comparison tree);
图5示出了根据本发明一个示例性实施例、用于执行仲裁的流程以及
图6示出了根据本发明一个示例性实施例、用于形成仲裁号码的流程图。
在本文中呈现的范例说明了本发明的优选实施例,并且这些范例不应 当被理解为以任何方式限制本发明的范围。
具体实施例方式
现在参考附图,更具体地是参考图1,其示出了根据本发明一个示例 性实施例的适合用于执行仲裁的环境100。图1的环境100包括仲裁器10 和多个代理20、 30、 40禾n 50 (即,1、 2、 3、…N,其中N是任意整 数)。仲裁器10经由任何合适的信号传输介质、以图1所示的方式操作
7地耦合于代理20、 30、 40和50。如这里将描述的,仲裁器IO基于仲裁号 码来执行仲裁功能,以选择性地允许代理20、 30、 40和50访问共享资 源,例如存储器、总线或其它资源。根据一个示例性实施例,仲裁器10 以及代理20、 30、 40和50全部都可以包括在单个集成电路(IC)上,或 者可以包括在多个IC上。代理20、 30、 40和50例如可以表示不同的数字 系统元件,例如中央处理单元(CPU)、图形引擎、和/或其它元件。根据 另一个示例性实施例,仲裁器10以及代理20、 30、 40和50各自可以被实 现为和/或包括在独立的用户设备中,例如音频和/或视频设备。因此,这 里所描述的仲裁功能可适用于执行仲裁的任何类型的系统、设备和/或装 置。
现在参考图2,其示出了根据本发明一个示例性实施例的仲裁号码 200的格式。根据一个示例性实施例,仲裁器10为每一个代理20、 30、 40和50生成并维护仲裁号码,这些仲裁号码中的每一个均具有图2的仲 裁号码200的格式。但是,出于实践本发明的目的,可以仅有一个或多个 代理20、 30、 40和50包括具有图2的仲裁号码200的格式的仲裁号码。 图2的仲裁号码200包括多个连接的字段,这些字段包括请求字段210、 超时(Timeout)字段220、优先级值字段230、优先级计量器(Priority Meter)字段240、剩余带宽(bandwidth remaining)字段250、等待计时 器字段260和主索引字段270。前述字段中的每一个表示不同参数,并包 括预定数目的数字比特。根据一个示例性实施例,请求字段210是一比 特,超时字段220是一比特,优先级值字段230是四比特,优先级计量器 字段240是四比特,剩余带宽字段250是十比特,等待计时器字段260是 十比特,主索引字段270是四比特。本发明的其它实施例针对前述各个字 段可以使用不同的比特数目。优选地,以图2所示的方式从最高有效位 (MSB)到最低有效位(LSB)来连续地设置这些字段,并且这些字段共 同形成了仲裁号码200。本发明的其它实施例可以按不同方式来设置仲裁 号码200的字段。仲裁号码200的各个字段描述如下
请求字段210请求字段210被用于请求仲裁。请求字段210具有初始值零,并且在
代理20、 30、 40、 50请求仲裁时动态地变为一。 超时字段220
当等待计时器字段260达到预定的最大时间值时,超时字段220被设 置为一。超时字段220具有初始值零,并动态地改变。当代理20、 30、 40、 50之一赢得仲裁时,针对该代理的超时字段220被清除并设置为零。
优先级值字段230
优先级值字段230被针对各个代理20、 30、 40、 50基于其本质来设 置为固定的预定值。优先级值字段230的较高值指示出较高优先级。优先 级值字段230按惯例是静态的,并且例如可以在制造时被设置或者在用户 启动系统时被编程。
优先级计量器字段240
优先级计量器字段240具有初始值零并动态地改变。当某一代理20、 30、 40、 50仲裁失败时,优先级计量器字段240被递增。当优先级计量器 字段240达到预定的最大值时,其保持在该值直到代理20、 30、 40、 50 赢得仲裁。当某一代理20、 30、 40、 50赢得仲裁时,该代理的优先级计 量器字段240被重新初始化为预定值。
剩余带宽字段250
剩余带宽字段250用于测量由代理20、 30、 40、 50传送的数据字。 剩余带宽字段250具有预定的初始值并动态地改变。对于赢得仲裁的某一 代理20、 30、 40、 50,剩余带宽字段250在传送数据时周期性地递减。在 某一代理20、 30、 40、 50的剩余带宽字段250达到零值时,该代理的剩 余带宽字段250将停止在零处。当所有代理的剩余带宽字段都达到零时, 每一个代理的剩余带宽字段250都被重新初始化。这种方法的效果在于其
9降低了在所有剩余带宽字段上一次被初始化之后已经赢得仲裁至少一次的 那些代理的优先级。
等待计时器字段260
等待计时器字段260被用于测量从某一代理20、 30、 40、 50的请求 被发出起该代理已经等待了多长时间。等待计时器字段260具有预定的初 始值并动态地改变。具有较低等待时间要求的某一代理20、 30、 40、 50 例如可以被编程为比没有该要求的另一个代理20、 30、 40、 50具有更大 的初始值。作出请求的代理20、 30、 40、 50的等待计时器字段260被周 期性地递增直到其赢得仲裁为止。赢得仲裁的某一代理20、 30、 40、 50 的等待计时器字段260被复位为其预定初始值。非作出请求的代理20、 30、 40、 50的等待计时器字段260保持不变。各个代理20、 30、 40、 50 的等待计时器字段260将停止于预定最大值。
主索引字段270
主索引字段270用作平局决胜器。每一个代理20、 30、 40、 50的主 索引字段270均具有唯一值。主索引字段270是静态的并且例如可以在制 造时设置。
图1的仲裁器可以连接到显示器和诸如按钮之类的输入机构,以使得 用户可以在任何给定场合显示各个或全部代理的各个字段的值。用户界面 也可以允许用户输入一个或多个以下字段的值超时字段220的预定最大 值、优先级值字段230的预定值、优先级计量器字段240的预定最大值、 等待计时器字段260的预定初始值以及主索引字段270的值。
现在参考图3,其示出了根据本发明一个示例性实施例的仲裁号码发 生器300。仲裁号码发生器300是仲裁器10的元件。如图3所示,仲裁号 码发生器300操作以从代理20、 30、 40、 50接收对仲裁的请求(RO-R15)。仲裁号码发生器300还操作以生成并存储各个代理20、 30、 40、 50的仲裁号码(A0-A15)。根据一个示例性实施例,这些仲裁号码(AO-A15)中的每一个均具有图2所示的格式。为了示例和说明的目的,图3的仲裁号码发生器300被示出为能够接收针对仲裁的十六个请求(R0-
R15)并生成十六个相应仲裁号码(A0-A15)。但是,根据其它实施例, 仲裁号码发生器300可被修改为接收不同数目的仲裁请求,并生成相应不 同数目的仲裁号码。
现在参考图4,其示出了根据本发明一个示例性实施例的用于仲裁号 码的二叉比较树400。 二叉比较树400也是仲裁器10的元件。图4的二叉 比较树400包括用标号410、 420、 430和440表示的四级。第一级410包 括八个比较器(COMP),这八个比较器从图3的仲裁号码发生器300接 收仲裁号码(A0-A15)并执行比较功能从而选择八个最高的仲裁号码。第 二级420包括四个比较器,这四个比较器从第一级410接收八个最高的仲 裁号码并执行比较功能从而选择四个最高的仲裁号码。第三级430包括两 个比较器,这两个比较器从第二级420接收该四个最高的仲裁号码并执行 比较功能从而选择两个最高的仲裁号码。第四级440包括一个比较器,该 一个比较器从第三级430接收两个最高的仲裁号码并执行比较功能从而选 择最高的仲裁号码。第四级440还包括触发器(FF),该触发器接收并输 出最高仲裁号码。按前述方式,二叉比较树400从图3的仲裁号码发生器 300所提供的十六个仲裁号码(A0-A15)中选择最高的仲裁号码。具有该 最高仲裁号码的特定代理20、 30、 40、 50随后被仲裁器IO选择以访问资 源。为了示例和说明的目的,图4的二叉比较树400被构造为容纳十六个 仲裁号码。但是,二叉比较树400可以被相应地修改以容纳更大或更小数 目的仲裁号码。注意,图4所示的二叉比较树400的硬件实现方式也可以 用软件来实现。此外,除了图3的仲裁号码发生器300和图4的二叉比较 树400之外,仲裁器10还可以包括诸如复用器和/或其它元件之类的元 件。这样的元件未在附图中示出,以不会模糊本发明的发明原理。
现在参考图5,其示出了根据本发明一个示例性实施例的图示出用于 执行仲裁的步骤的流程图500。为了示例和说明的目的,将参考前面所描 述的附图的元件来描述图5的步骤。图5的步骤仅仅是示例性的,而并不 意图以任何方式限制本发明。在步骤510,仲裁器IO判断是否有来自代理20、 30、 40、 50的针对 仲裁的一个或多个请求。根据一个示例性实施例,在步骤510,某一代理 20、 30、 40、 50可以请求访问资源(例如,存储器、总线等)并从而通过 向仲裁器10发送请求信号来请求仲裁。当某一代理20、 30、 40、 50在步 骤510请求仲裁时,其仲裁号码200的请求字段210从零转换为一。
如果步骤510的判断是否定的,则处理流程循环并重复步骤510。 一 旦步骤510的判断为肯定,处理流程就前进到步骤520,在步骤520中, 仲裁器IO使能其二叉比较树400 (参见图4)达一个仲裁周期。如本文的 前面所示,仲裁器10也可以用软件来实现二叉比较树400。
在步骤530, 二叉比较树400按本文前面所述的方式对所有仲裁号码 (A0-A15)进行比较,从而识别并选择最高仲裁号码。具有该最高仲裁号 码的特定代理20、 30、 40、 50被认为已经赢得仲裁。
在步骤540,仲裁器10判断是否许可赢得仲裁的该特定代理20、 30、 40、 50访问所请求的资源。通常仲裁器10将许可赢得仲裁的某一代 理20、 30、 40、 50访问所请求的资源。但是,存在不许可得胜代理20、 30、 40、 50访问所请求资源的某些情况。例如,在所请求资源为存储器的 情况下,该存储器的存储器控制器可能被占用执行其它处理功能,因此无 法许可得胜代理20、 30、 40、 50访问该存储器资源。例如,该存储器可 能被先前的仲裁得胜者占用。在先前的得胜者需要在很长时间内访问存储 器的情况下,仲裁器10允许该先前得胜者访问该存储器直到该先前得胜 者的剩余带宽计量器字段达到零为止。到那时,如果该先前得胜者仍然有 要从存储器读取或写入存储器的数据,则该先前得胜者必须赢得另一个仲 裁以完成向或从存储器的数据传送。如前所述,当所有代理的剩余带宽字 段都达到零时,所有这些剩余带宽字段都被初始化为预定值。
如果步骤540的判断为否定,则处理流程前进到步骤550,在步骤 550中,仲裁器10递增在步骤510中在该仲裁周期内请求仲裁的各个代理 20、 30、 40、 50的优先级计量器字段240和等待计时器字段260。从歩骤 550起,处理流程循环回到步骤510以进行另一个仲裁周期。如果步骤540的判断为肯定,则处理流程前进到步骤560,在步骤 560中仲裁器10许可得胜代理20、 30、 40、 50访问所请求资源。仲裁器 10还在步骤560针对得胜代理20、 30、 40、 50递减剩余带宽字段250并 将等待计时器字段260复位到预定的初始值。从步骤560起,处理流程循 环回到步骤510以进行另一个仲裁周期。
现在参考图6,其示出了根据本发明一个示例性实施例、图示出用于 形成各个代理的仲裁号码的步骤的流程图600。为了示例和说明的目的, 将参考前面所述附图的元件来描述图6的步骤。图6的步骤仅仅是示例性 的,而并不意图以任何方式限制本发明。
在步骤610,仲裁器10接收多个参数之一的值。例如,仲裁器10可 以接收由用户输入的优先级值字段230的预定值。可由用户输入其值并由 仲裁器10接收的其它参数如下所示等待计时器字段260的预定初始值 和主索引字段270的值。
在步骤620,仲裁器IO将所接收的值赋予相应参数。继续以上示例, 仲裁器10将所接收的预定值赋予优先级值字段230。
在步骤630,仲裁器10将值赋予其它参数中的每一个。继续以上示 例,仲裁器10将值赋予请求字段210、超时字段220、优先级计量器字段 240、剩余带宽字段250、等待计时器字段260和主索引字段270。
在步骤640,仲裁器10将所有参数连接成如图2所示的一个仲裁号 码。如前所述,因为多个仲裁参数已被连接成针对每一个代理的单个仲裁 号码,所以仅需要例如图4所示的一个比较树,从而增加了仲裁速度。
如本文所述,本发明提供了一种用于执行仲裁的方法和装置,该方法 和装置增加了仲裁公平性、降低了系统等待时间、增加了系统吞吐量并且 适合用于更复杂的系统。虽然本发明被描述为具有优选设计,但是在本公 开的精神和范围内可进一歩修改本发明。因此,本申请意图涵盖使用本发 明的一般原理的本发明的任何变体、用途或适应性修改。此外,本申请意 图涵盖在本领域的已知或惯用实现方式内的对本公开的以下变更,这些变 更是本发明所涉及的并且落在所附权利要求的限制范围内。
1权利要求
1.一种执行仲裁的方法(500),包括以下步骤生成与多个代理(20-50)相对应的多个仲裁号码;基于所述多个仲裁号码,选择所述多个代理之一以访问由所述多个代理所共享的资源;并且其中,所述多个仲裁号码的至少一个包括与多个参数相对应的多个字段(210-270)。
2. 如权利要求1所述的方法(500),其中,具有最高的所述仲裁号 码的所述代理被选择来访问所述资源。
3. 如权利要求1所述的方法(500),其中,所述多个字段中的第一 字段(230)指示了所述多个代理中的第一代理的静态优先级值,所述多 个字段中的第二字段(250)指示了所述第一代理的带宽值,并且所述多 个字段中的第三字段(260)指示了从所述第一代理请求访问所述资源起 的时间量。
4. 如权利要求3所述的方法(500),其中,所述多个字段(210-270)被表示为若干个连接的比特,其中,所述第一字段(230)占用了比 所述第二字段(250)更重要的比特位置,并且所述第二字段(250)占用 了比所述第三字段(260)更重要的比特位置。
5. 如权利要求3所述的方法(500),其中,如果所述第一代理被选 择来访问所述资源,则所述第二字段(250)被递减。
6. 如权利要求3所述的方法(500),其中,如果所述第一代理被选 择来访问所述资源,则所述第三字段(260)被设置为预定值。
7. 如权利要求3所述的方法(500),其中,如果所述第一代理未被 选择来访问所述资源,则所述第三字段(260)被递增。
8. 如权利要求3所述的方法(500),其中,所述多个字段(210-270)还包括第四字段(240),该第四字段(240)指示了所述第一代理 的动态优先级值。
9. 如权利要求8所述的方法(500),其中,如果所述第一代理未被选择来访问所述资源,则所述第四字段(240)被递增。
10. 如权利要求8所述的方法(500),其中,所述多个字段(210-270)还包括第五字段(220),如果所述第三字段(260)达到最大值则 所述第五字段(220)被设置为预定值。 '
11. 一种装置(10),包括用于生成与多个代理(20-50 )相对应的多个仲裁号码的装置 (300);用于基于所述多个仲裁号码来选择所述多个代理之一以访问由所述多 个代理所共享的资源的装置(400);并且其中,所述多个仲裁号码的至少一个包括与多个参数相对应的多个字 段(210-270)。
12. 如权利要求11所述的装置(10),其中,具有最高的所述仲裁 号码的所述代理被选择来访问所述资源。
13. 如权利要求11所述的装置(10),其中,所述多个字段中的第 一字段(230)指示了所述多个代理中的第一代理的静态优先级值,所述 多个字段中的第二字段(250)指示了所述第一代理的带宽值,并且所述 多个字段中的第三字段(260)指示了从所述第一代理请求访问所述资源 起的时间量。
14. 如权利要求13所述的装置(10),其中,所述多个字段(210-270)被表示为若干个连接的比特,其中,所述第一字段(230)占用了比 所述第二字段(250)更重要的比特位置,并且所述第二字段(250)占用 了比所述第三字段(260)更重要的比特位置。
15. 如权利要求13所述的装置(10),其中,如果所述第一代理被 选择来访问所述资源,则所述第二字段(250)被递减。
16. 如权利要求13所述的装置(10),其中,如果所述第一代理被 选择来访问所述资源,则所述第三字段(260)被设置为预定值。
17. 如权利要求13所述的装置(10),其中,如果所述第一代理未 被选择来访问所述资源,则所述第三字段(260)被递增。
18. 如权利要求13所述的装置(10),其中,所述多个字段(210-270)还包括第四字段(240),该第四字段(240)指示了所述第一代理 的动态优先级值。
19. 如权利要求18所述的装置(10),其中,如果所述第一代理未 被选择来访问所述资源,则所述第四字段(240)被递增。
20. 如权利要求18所述的装置(10),其中,所述多个字段(210-270)还包括第五字段(220),如果所述第三字段(260)达到最大值则 所述第五字段(220)被设置为预定值。
21. —种仲裁器(10),包括发生器(300),该发生器操作以生成与多个代理(20-50)相对应的 多个仲裁号码;电路(400),该电路操作以基于所述多个仲裁号码来选择所述多个 代理之一以访问由所述多个代理所共享的资源;并且其中,所述多个仲裁号码的至少一个包括与多个参数相对应的多个字 段(210-270)。
22. 如权利要求21所述的仲裁器(10),其中,具有最高的所述仲裁号码的所述代理被选择来访问所述资源。
23. 如权利要求21所述的仲裁器(10),其中,所述多个字段中的 第一字段(230)指示了所述多个代理中的第一代理的静态优先级值,所 述多个字段中的第二字段(250)指示了所述第一代理的带宽值,并且所 述多个字段中的第三字段(260)指示了从所述第一代理请求访问所述资 源起的时间量。
24. 如权利要求23所述的仲裁器(10),其中,所述多个字段 (210-270)被表示为若干个连接的比特,其中,所述第一字段(230)占用了比所述第二字段(250)更重要的比特位置,并且所述第二字段 (250)占用了比所述第三字段(260)更重要的比特位置。
25. 如权利要求23所述的仲裁器(10),其中,如果所述第一代理 被选择来访问所述资源,则所述第二字段(250)被递减。
26. 如权利要求23所述的仲裁器(10),其中,如果所述第一代理 被选择来访问所述资源,则所述第三字段(260)被设置为预定值。
27. 如权利要求23所述的仲裁器(10),其中,如果所述第一代理 未被选择来访问所述资源,则所述第三字段(260)被递增。
28. 如权利要求23所述的仲裁器(10),其中,所述多个字段 (210-270)还包括第四字段(240),该第四字段(240)指示了所述第一代理的动态优先级值。
29. 如权利要求28所述的仲裁器(10),其中,如果所述第一代理 未被选择来访问所述资源,则所述第四字段(240)被递增。
30. 如权利要求28所述的仲裁器(10),其中,所述多个字段 (210-270)还包括第五字段(220),如果所述第三字段(260)达到最大值则所述第五字段(220)被设置为预定值。
31. —种用于为多个代理中的至少一个代理指派仲裁号码的方法 (600),根据被指派给所述多个代理中的所述至少一个代理的所述仲裁号码,所述多个代理之一被选择来访问由所述多个代理共享的资源,所述方法包括以下步骤接收多个仲裁参数之一的第一值(610); 将值赋予其它仲裁参数的每一个(630);以及 连接所述多个仲裁参数以形成所述仲裁号码(640)。
全文摘要
一种用于执行仲裁的装置(10)增加了仲裁公平性、降低了系统等待时间、增加了系统吞吐量、并且适合用于更复杂的系统。根据一个示例性实施例,该装置(10)包括发生器(300),用于生成与多个代理(20-50)相对应的多个仲裁号码;和电路(400),用于基于这些仲裁号码来选择这些代理之一以访问这些代理所共享的资源。仲裁号码的至少一个包括与多个参数相对应的多个字段(210-270)。
文档编号G06F13/36GK101495979SQ200680055137
公开日2009年7月29日 申请日期2006年6月27日 优先权日2006年6月27日
发明者托马斯·爱德华·豪兰德尔, 陈树友 申请人:汤姆逊许可证公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1