CN101263465B - 用于总线仲裁的方法和系统 - Google Patents

用于总线仲裁的方法和系统 Download PDF

Info

Publication number
CN101263465B
CN101263465B CN2006800339423A CN200680033942A CN101263465B CN 101263465 B CN101263465 B CN 101263465B CN 2006800339423 A CN2006800339423 A CN 2006800339423A CN 200680033942 A CN200680033942 A CN 200680033942A CN 101263465 B CN101263465 B CN 101263465B
Authority
CN
China
Prior art keywords
data
data transfer
request
bus
transfer 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
CN2006800339423A
Other languages
English (en)
Other versions
CN101263465A (zh
Inventor
B·汤玛斯
M·M·库尔卡尼
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.)
Network System Technology Co ltd
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101263465A publication Critical patent/CN101263465A/zh
Application granted granted Critical
Publication of CN101263465B publication Critical patent/CN101263465B/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

Abstract

一种要在具有多个数据处理单元(110a,…,110d)和共享总线(140)的系统中使用的总线仲裁的方法和系统,该共享总线具有多个数据线。本发明提供了一种方法和执行该方法的系统,该方法具有以下步骤:接收来自数据处理单元的数据传递请求;选择一组数据传递请求,对该请求的准许会服务最多数量的数据处理单元和利用最多数量的数据线,以及;准许发出所述所选的组的数据传递请求的数据处理单元在单个总线周期中访问所述总线。

Description

用于总线仲裁的方法和系统
技术领域
本发明涉及用于总线仲裁的方法和系统,它更具体地涉及用于具有多个数据处理单元的系统的总线仲裁系统。甚至更具体地,本发明涉及用于具有多个数据处理单元的系统的总线仲裁系统,该总线仲裁准许最优使用总线宽度和为最优数量的数据处理单元服务。
背景技术
定义1:在随后的描述中,术语″数据处理单元″将包括可以访问总线的任何单元,比如存储器,以及处理器。该单元可以是可编程的,例如通用处理器,或者具有预定功能。数据处理单元-不排除其他可能的数据处理单元-也将包括一个/多个处理器。下面,术语“数据处理单元”可以可互换地被用于替代单词″处理器″。
定义2:在随后的描述中,术语″数据线″包括用来传送任何数据,包括地址,的任何线。但是,当仅对″地址线″进行引用时,它将绝对地(categorically)被叙述为″地址线″。以下″数据线″可以可互换地与单词″数据总线或总线″一起来使用。
地址/数据总线是准许多个数据处理单元访问比如存储器那样的共享资源的熟知的解决方案。传统上,一个数据处理单元在某一时间得以访问总线来经由总线传递数据和相应的地址。
现代数据总线非常宽,并且准许在单个总线周期中通过总线传递具有许多比特(例如64或128比特)的字。数据处理电路(如处理器)并不总是使用所有这些数据线,因为往往是必须被传送的字的大小要小于可用总线宽度的字的大小。
美国专利No.6,366,984公开了一种在数据总线上通过识别彼此邻近的地址来进行的比特的包封机制。类似地,EP 465,320公开了一种写入包封器,其收集写入请求并且比较来自这些请求的地址,以确定来自不同请求的数据是否可以被包封到单个总线周期中。
进一步,美国专利号5,930,484讨论了一个机制,该机制按照每个数据处理单元的预定优先级来对多个数据处理单元准许总线访问。而且,这种机制将数据总线划分为子总线,并标识可以被准予给数据处理单元的子总线的最大数量,并且相应地将一个或多个子总线分派给一个或多个数据处理单元。在该专利中公开的这一机制依赖于所标识的优先级,以及由此有可能导致可用总线宽度的非最优利用。此外,在所描绘的实施例中,共享的总线被分成子总线,每个子总线具有64比特的子总线宽度。
假设根据美国专利号5,930,484的系统具有两个处理器,即P1和P2,使处理器P1具有比处理器P2高的优先级。为每个处理器分派最多2个子总线,且有四个子总线,每个子总线有16比特宽。对于这一系统,有可能存在这样的情况,即此时处理器P1请求48比特数据传递而处理器P2请求16比特数据传递。那么,在美国专利号5,930,484中描述的方法将需要至少两个总线周期来传送这些请求。在第一总线周期中,处理器P1的32比特数据和P2的16比特数据利用了仅48比特的线。在第二总线周期中,处理器P1的其余16比特数据被转送。因此,在保持未被使用的子总线可用的同时,它需要至少两个总线周期来传递数据。
更进一步,当子总线的大小高于所请求的数据传递的大小时,美国专利号5,930,484中所描述的发明可能剩下更多的数据线未被使用。例如,如果一个128数据线的总线被分为四个子总线,每个子总线为32比特线,那么对于每个16比特的数据传递请求,一个子总线将剩下16比特线未被使用,从而导致缓慢的数据传递。
显然,从美国专利号5,930,484和其他引用的专利了解的机制并没有提供优化资源利用的任何机制,虽然其试图使所服务的处理器(客户机/数据处理单元)数量达到最大。
发明内容
本发明的一个目的尤其是提供用于总线仲裁的方法与系统,其不仅使在单个总线周期内所服务的客户机数量达到最大,而且最优地利用了可用资源。
为此,本发明提供了一种总线仲裁器,其被安排成用于接收来自多个数据处理单元的数据传递请求和用于在所述多个数据处理单元间仲裁共享总线的数据线的访问,该总线仲裁器包括:
a、逻辑块,其被配置成用于准许一个或多个数据处理单元来访问所述数据总线,以便在单个总线周期中执行数据传递请求,其中所述逻辑块包括优化器,其将最大化数据处理单元访问的数量和最大化在单个总线周期中所利用的数据线的数量做为优化准则,以及;
b、控制器,其能够登记和维护待决的(pending)数据传递请求的一个进度表,用于在一组已标识的待决数据传递请求间启动第一优化,以准许一个或多个待决的数据传递请求在单个总线周期中访问所述总线,其中所述控制器进一步被配置来在除了所述已标识的请求外的数据传递请求间启动第二优化,其中对未被使用的数据线的访问是在所述第一优化之后进行仲裁的。
该逻辑块接收数据传递请求并且确定执行所收到的数据传递请求所需的数据线数量。逻辑块根据数据线的总数和数据传递请求的总数来标识一组数据传递请求,该组数据传递请求可被准许在单个总线周期中访问数据线,使得被准许访问数据线的请求的总数最多并且在所述总线周期中使用的数据线的总数最多。
进一步,控制器登记还没有被准许访问数据线的数据传递请求。更进一步,控制器还维护一个进度表,以便确保每个数据传递请求在预定时间内被服务。此外,控制器标识是否一个或多个数据传递请求待决超出所述预定时间。在此情况下,控制器指令逻辑块对所标识的数据传递请求准许访问,并且如果还存在着任何未使用的数据线,则它还指令逻辑块来对除了已标识的数据传递请求外的一组数据传递请求准许访问。
根据本发明的一个方面,提供了一种总线仲裁方法,在具有多个数据处理单元和有多个数据线的共享总线的系统中使用,该方法包括以下步骤:
a、接收来自数据处理单元的数据传递请求;
b、选择一组一个或多个数据传递请求,对该请求的准许会服务最大数量的数据处理单元,并且利用最大数量的数据线,以及;
c、准许发出所述组的所选数据传递请求的数据处理单元在单个总线周期中访问所述总线。
除可用资源的最佳利用外,本发明的这一方面提供了在单个总线周期中所服务的客户机数量的最大化。
根据本发明的另一方面,本发明提供的方法进一步包括以下步骤:
a、标识已经待决超出预定期限的数据传递请求,以及;
b、在所述被标识的数据传递请求中选择第一组一个或多个数据传递请求,对该请求的准许会服务最大数量的数据处理单元并且利用最大数量的数据线。
本发明的这一方面保证了数据传递请求在所标识的期限内被准许访问资源。该期限可被标识为在其之前数据传递请求必须被准许的一个期限。本发明的这一方面准许在被标识为待决超出预定期限的数据传递请求中选择一组数据传递请求,并且所述数据传递请求组服务最大数量的数据处理单元并且利用最大数量的数据线。
根据本发明的另一方面,该方法包括以下步骤:
a、确定在选择所述第一组数据传递请求之后是否数据线未被使用;
b、在除了所述被标识的数据传递请求外的数据传递请求间选择第二组一个或多个数据传递请求,对该请求的准许会服务最大数量的数据处理单元并且利用最大数量的所确定的未被使用的数据线,以及;
c、准许发出所述第一和第二组数据传递请求的数据处理单元在单个总线周期中访问所述总线。
本发明的这一方面准许在第一组数据传递请求已选定之后确定未被使用的数据线。举例来说,如果存在一组数据传递请求,其待决长于预定期限,则在待决超出所述预定期限的数据传递请求间做出第一轮选择。在所述第一组被选定之后,使得服务最大数量的数据处理单元和利用最多的资源,并且一个或多个数据线仍可能未被利用。在这种情况下,在除了所标识的数据传递请求外的数据传递请求中,为剩下的数据线选择第二组,用于确保可用资源的最大限度的利用。
根据本发明的另一方面,准许数据处理单元的步骤包括登记和调度每个所接收的和所服务的请求的步骤。本发明的这一方面准许一种机制来维护每个数据传递请求的时间日志,其可以被用于确定是否有任何数据传递请求是待决超出预定期限的。因此,也能保证该待决的请求在给定期限内得到服务。
根据本发明的又一方面,标识步骤包括确定在其内数据传递请求必须被准许访问所述总线的期限的步骤。本发明的这一方面提供了一种灵活性来规划在其内数据传递请求可以预期得到服务的时间期限。
根据本发明的又一方面,选择步骤可选地提供选择一组数据传递请求的步骤,该组数据传递请求包括多组请求间的相对较高数量的旧的数据请求,对该请求的准许会服务最多数量的数据处理单元并且引起最多数量的数据线的利用。本发明的这一方面提供了灵活性以在多组数据传递请求中选择可被准许访问的一组数据传递请求,对该请求的准许导致服务同样数量的数据处理单元和同样数量的资源利用。
附图说明
本发明的这些和其他方面将参照附图更具体地加以说明。这里,
图1示例了适合于实施本发明的电子电路,
图2示例了根据本发明的仲裁器的实施例的框图,
图3示例了根据本发明的、构成仲裁器组成部分的电路的实施例的框图,
图4示例了根据本发明的由仲裁方法所执行的步骤的流程图,
图5示例了根据本发明的当计算可被准许访问数据线的、可能的一组请求时所执行的步骤的流程图。
具体实施方式
参照图1,其中示出了可用于实施本发明的电子电路。在这个例子中,为方便说明,为了理解清晰起见,数据处理单元由处理器和存储器来标识。但是,本领域的技术人员将了解到,在不偏离本发明的基本构思的情形下,处理器或存储器或两者可能使用其它的数据处理单元来进行交换或替代或重新安排。
图1的电路100包含多个处理器或数据处理单元110a-d、总线接口120、总线140、多个存储器或者另一组数据处理单元160a和b。每个处理器110a-d可能具有地址输出A、数据输出D和控制输入/输出。控制输入/输出可提供信息以标识处理器和/或将被传递的数据的字大小,以及也有可能提供地址的大小。总线接口120将地址和数据输出耦合到总线140,其中存储器160a、b被耦合到该总线140来接收地址和数据信息。总线140包括多个地址线、多个数据线-比如64或128条数据线,和控制线。
举例来说,处理器110a-d被显示为仅具有数据输出,但应该理解,处理器可能有数据输入、数据输入或一组数据输出和被耦合到总线接口120的数据输出。虽然在图1中显示了处理器110a-d,但是应该理解,可以使用任何其他类型的数据处理电路。同样地,为了解释说明起见,虽然显示了两个存储器被连接到总线140,但是应当理解,许多其他电路可被连接到总线140,不一定全是存储器,或者仅单个电路也可被连接到总线140。
在工作中,处理器110a-d产生数据并且将此数据写入到存储器160a-b中的位置上,或从存储器160a,...,d中读取数据。为此,处理器110a-d生成读/写请求并提供输入给总线接口120。到总线接口的输入可以是数据和地址或者仅地址。总线接口120在总线周期中工作。在每个总线周期内,总线接口120选择性地传送数据/地址比特到总线140的数据/地址线。存储器160a-b接收来自总线140的地址,并且使用它们来选择数据被写入其中的位置。根据本发明的接口120在数据传递请求间进行仲裁,以对来自/去往不同处理器110a-d的数据和地址进行排序。接口120具有一个控制器,用于释放总线上的数据和地址。
现在参照图2,该图示出了在总线接口120内的仲裁器210的框图200,该仲裁器接收多个输入230并提供多个输出220。仲裁器210可接收输入,该输入清楚地标识处理器和由所述处理器做出的数据传递请求。此外,仲裁器210还可接收输入,其标识由处理器请求来用于通信的数据/地址的大小。通过其输出220,仲裁器可以通过使得在总线接口120(图1)内的开关和/或处理器能够准许数据/地址传递,而使得能够放出所标识的数据或地址或两者以用于通信。
现在参照图3,该图示出了图2的仲裁器210内的电路的方框图300。电路300包括逻辑单元310、320和330。这些逻辑单元选择数据传递请求或一组用于数据传递的请求,这样使得最大数量的处理器被准许访问数据线,同时也确保了数据线的最佳利用。块300进一步被提供有连接到逻辑单元310、320和330的控制器340,用于确保给定的请求在预定时间内得到服务。控制器340可以是可编程的或具有预定设置用于在其内一个请求应当基本上被服务的时间期限(time duration)。如果它是可编程的,则它可以在执行指令过程期间被编程或可以在执行指令之前被编程。控制器340也登记和动态地更新待决的请求。本领域的技术人员将理解到,逻辑单元310、320和330的功能都具有在不同情形下来选择一组数据传递请求的相同功能(″不同情形″在后续中将会更加清楚)并且本功能可以通过相应地编程单个逻辑单元,而使用仅一个逻辑单元来执行。可替换地,逻辑单元310、320和330可被包封在单个逻辑块中。不过,为方便说明、简单及明晰起见,在本讨论中这些单元均显示为单独的块。
块300的工作可被理解如下。两个逻辑单元310和320都可接收输入,该输入唯一地标识处理器及由所述处理器做出的相应的请求。此外,所述逻辑单元310和320还可以接收标识数据/地址大小的输入,该数据/地址是由每个处理器请求来用于通信的。逻辑单元310和逻辑单元320被进一步提供有关于可供利用的数据线宽度的信息。逻辑单元330接收来自逻辑单元310、320和控制器340的输入。逻辑单元330提供了所选的一组数据传递请求,该组数据传递请求可以最终被准许访问数据总线。
初始地,当不存在任何用于数据传递的请求时,控制器340被设置来指示″无″请求在等待。在这种情况下,控制器禁用逻辑单元320并且设置逻辑单元330去充当透明块。一接收到数据传递请求,逻辑单元310就计算可以被准许访问数据线的所有可能的数据传递请求组,并且这些可能组将服务于最大数量的请求。假使,如果有多于一个这样的可能的组将服务于最大数量的请求,则逻辑单元310选择一组请求,其将利用最多数量的数据线宽度来使所选数据传递请求能够访问数据线。
另外,如果有多于一个组准许服务最大数量的数据传递请求并且利用最大可能的数据线宽度,则逻辑单元310可以选择具有相对高数量的相对旧的数据传递请求的一个组。逻辑单元310然后考虑待决的数据传递请求,更新控制器340。
假使那时控制器340确定一个或多个数据传递请求是待决超出预定期限的,那么它启用逻辑单元320和逻辑单元330并且设置逻辑单元310来传送可用请求到逻辑单元330。逻辑单元320计算在所述被标识的待决请求间的所有可能的数据传递请求组,并且完全以与前面例子中的逻辑单元310类似的方式来选择可能的组。一完成计算,逻辑单元320便将其输出提供到逻辑单元330。在逻辑单元320选择一组数据传递请求之后,逻辑单元330检查是否有任何更多的、可用于通信的数据线可得到。如果这样,那么逻辑单元330以类似对逻辑单元310所讨论的方式、为除了能通过可用数据线被准许访问的被标识请求之外的请求来执行计算。
当计算可能的、可以被准许来访问数据线的数据传递请求组时,逻辑单元310、320和330可被编程来包括数据-地址的大小,并且发送信号来准许在给定总线(数据线)周期中访问数据以及地址线,或者另一方面数据的地址可以在单独地被标识的地址通信线上连续地进行传送。
为了计算可能的数据传递请求组合,逻辑单元310、320和330可以使用下列公式。
选择组G的子组S,这样使得:
|S|最大并且
S的元素的数据大小之和<=Max_Bus_Width(最大总线宽度)
其中,G是所有可用请求的一个组。S是一组请求和G的一个子组,并且对应于可以被准许访问数据线的可能请求组之一。|S|是子组S中请求的数量,并且Max_Bus_Width是可用数据线的最大数量。正如前面所讨论的,如果存在多于一个子组S,对其而言|S|是相同的,那么逻辑单元可以选择那个将利用最大数量的数据线的子组,并且在块300的输出上发送控制信号以使得所选定的数据传递请求能够访问数据线。此外,如果有一个以上的组准许服务最大数量的数据传递请求并且利用最大可能数量的数据线,那么逻辑单元310、320、330可以选择具有相对较高数量的相对旧的数据传递请求的一个组。在选择过程的结尾,每个逻辑单元更新控制器340。
从上述讨论中显然可见,逻辑单元310、320、330是对于″不同的情形″起作用的,即:当没有被标识的待决请求时,逻辑单元310选择一组数据传递请求;逻辑单元320在被标识的待决请求间选择一组数据传递请求;以及在逻辑单元320已经选定一组被标识的待决请求、留下一个或多个数据线未被使用之后,逻辑单元330仅仅为未被使用的数据线选择除了被标识的数据传递请求之外的另一组数据传递请求。
现在参考图4,它给出高级别逻辑流程图400,示例了根据本发明的方法和系统的总线仲裁方案的控制顺序。如图所示,这个过程开始于块401,然后转到块402。块402检查是否有要被服务的任何请求。如果有请求可得到,则控制会移到块404。如果没有,则在块402中对请求的检查重复进行,直到下一总线请求可得到。
在块404中,执行检查来标识待决超出预定期限的请求。控制器340(如图3所示)执行这一标识。如果控制器340标识:某些请求待决的期限超出预定期限,则控制转到块405。
在块405中,执行计算以在由控制器340所标识的请求间确定一组请求,该组请求应被准许以便服务最多数量的数据处理单元。在块405控制被转到块409之后,块409检查是否有一个以上的组符合在块405中的准则。如果是的话,该控制移到块418。
块418执行一个检查,用于标识这样的组,即:对该组的准许会达到最高数量的数据线的利用。如果有单个组获得更多的利用,那么控制块420选择那一组,并提供输出信号且控制块421更新控制器340。返回到块418,如果多组同样地符合准则,则控制块419选择服务最高数量相对旧的请求的任何一组-定时细节由控制器340标识-并且块421更新控制器340。控制然后是转到块411。
在块411中,验证是否所选定组的准许导致系统中所有数据线的占用。如果仍然有一个或多个数据线可用于通信,那么控制移到块413。
在块413中,确定除了所标识的待决请求外的一组数据传递请求,并且在所述请求间标识一组数据传递请求以通过未被利用的数据线进行通信。一组数据传递请求的选择是这样做出的,即:使得它服务最大数量的数据处理单元并且利用最大数量的可用数据线。
控制然后被转到块407。这个块会标识是否有多于一组能满足上述准则。在这种情况下,控制移到块414,其中执行检查以保证对该组中仅一组的准许达到比对其他组中每组的准许更多的数据线利用。如果这样,则选择利用最多数量数据线的这一组。块417更新控制器340,以及接着将控制转到开始块401。返回到块414,如果多个组同样地符合准则,那么控制块416选择服务最高数量的相对较旧的请求的任何一组;定时细节由控制器340标识。块416提供输出信号,然后块417在控制器340中更新所服务的和待决的请求的细节,然后控制转到开始块401。
返回到块411,如果检查确定没有剩余的可用数据线,那么控制移到块412。此块提供要被服务的一个所选定的请求组并且对控制器340更新所服务的和待决的请求的细节。随后控制被转到开始块401。
返回到块407,如果只有一组满足所述准则,那么控制移到块408,该块选择该唯一组并且对控制器340更新所服务的和待决的请求的细节。最后,控制返回到开始块401。
返回到块409,如果只有一组满足所述准则,则控制移到块410,其选择那个组并且对控制器340更新被服务的和待决的请求的细节。现在在块411中执行检查,看看是否在块410中被选定的组占用了系统中的所有数据线(或全部总线)。如果是的话,则控制移到块413并且来自块413的控制流如前面所解释的那样进行。如果不是的话,则在块412中选择所述组并且在控制器340中更新被服务的且待决的请求的细节。块412将控制转到开始块401。
返回到块404,如果控制器340没有被标识的请求、其待决长于预定期限,则控制转到块406。在块406中,执行计算以确定对其的准许会服务最多数量的数据处理单元的那组请求。在块406之后,控制被转到块407,其检查是否有多于一组符合在406中的准则。如果是的话,则控制移到块414并且控制如前所述地从块414移动。如果不是,则控制移到块408,其中选择那个组,并且对控制器340更新关于被服务的和待决的请求的细节。最后,控制转到开始块401。
现在参照图5。图5描述了在所有可用请求间确定该组请求的步骤,所有可用请求包括那些由控制器340标识的请求。如所描绘的,这一过程开始于块501,并且转到块502。在块502中,接收指示可用数据线总数、数据传递请求数量、和由每个请求来请求用于传递的数据大小的信息,并且控制被转到块503,其中参数Max_Bus_Width(最大总线宽度)被设置为可用数据线的总数的被捕获值。此外,块503形成了基于可用请求的所有可用请求的组G。这一信息被转到块504。在块504中,根据以下准则执行计算以从组G找出可能的子组S:
1、|S|是最大的,其中|S|是子组S中请求的数量
2、S的元素的数据大小之和<=Max_Bus_Width(最大总线宽度)
块505提供关于所有可能子组S的信息,且对于这一过程,控制流结束。
现在参照表1,其示例了根据本发明的仲裁方案的例子,供在这样的系统中使用,即该系统具有共享总线、多个数据处理单元(处理器)、和仲裁器,该仲裁器接收来自所述处理器的输入以仲裁对所述共享总线的访问。在这个例子中,共享总线大小是64并且有4个或更多的处理器访问这一总线。假设每个处理器可以做出16比特或32比特或64比特的数据传递请求,并假定该控制器指示没有请求待决超出预定期限。那么,表1描述了根据本发明的用于一组请求的被服务的请求数量和总线宽度利用。为方便说明,表1中的每行列出了在特定时刻可用请求的大小(以比特计)、所服务的请求数量和总线带宽利用。条目‘X’指示存在零或更多数量的请求。
考虑行1。这相应于这样的一种情景,其中有4个或更多的、具有字大小16的请求。此外,还可以同时有多个32比特和64比特请求可用。考虑64比特的数据总线宽度,仲裁器选择去准予总线用于四个16比特请求,而不管用于32比特或64比特传递的请求的数量。即,所述选择既最大化所服务的处理器的数量、又最大化了数据总线宽度利用。条目4被示为阴影条目,作为这一请求被仲裁政策选择的指示。不同行表示了用于64比特数据总线和16、32、64比特请求大小的各种请求类型情形。这作为一个例子来说明所提出的仲裁政策,但不限制本发明的范围。
Figure GA20184532200680033942301D00111
表格1
在所描述的当前发明的方法和系统的实施例中的顺序不是强制性的,而仅是说明性的。本发明的范围不限于所描述的实施例。本领域的技术人员可以采用线程(threading)模型、多处理器系统或多个进程,改变步骤的顺序或同时执行步骤,而不偏离当前发明所计划的构思。任何这样的实施例将被归于本发明的范围之下,并且是保护的主题。
应该指出的是,上面提到的实施例只是说明而不是限制本发明,并且本领域的技术人员将能设计许多可替换的实施例而不偏离所附权利要求的范围。在权利要求中,置于括号内的任何参考符号不应当视为限制权利要求。单词″包括″不排除除了在权利要求中所列出的之外的元素或步骤的存在。元素之前的单词″一″或″一个″并不排除存在多个这样的元素。本发明可以通过包括几个不同元件的硬件来实施,并且可以通过适当地编程的计算机来实施。在系统权利要求中列举了几种装置,这些装置中的几个可以由计算机可读软件或硬件的同一项来具体化。在相互不同的从属权利要求中陈述某些措施的单纯的事实并不表示不能用一组这样的措施来获益。

Claims (9)

1.一种总线仲裁方法,在具有多个数据处理单元和共享总线的系统中使用,其中该共享总线具有多个数据线,该方法包括以下步骤:
a、接收来自数据处理单元的数据传递请求;
b、选择一组或多组一个或多个数据传递请求,对该请求的准许会服务最大数量的数据传递请求并且随后从这一组或多组中选择利用最大数量的数据线的一组一个或多个数据传递请求,以及;
c、准许发出所述已选择组的数据传递请求的数据处理单元在单个总线周期中访问所述总线。
2.如权利要求1要求的总线仲裁方法,其中所述方法进一步包括以下步骤:
a、标识已待决超出预定期限的数据传递请求,以及;
b、在所述被标识的数据传递请求中选择第一组一个或多个数据传递请求,对该请求的准许会服务最大数量的数据传递请求并且利用最大数量的数据线。
3.如权利要求2要求的总线仲裁方法,其中所述方法进一步包括以下步骤:
a、确定在选择所述第一组数据传递请求之后是否有数据线未被使用;
b、在除了被标识的数据传递请求外的数据传递请求中,选择第二组一个或多个数据传递请求,对该请求的准许会服务最大数量的数据传递请求并且利用最大数量的、所确定的未被使用的数据线,以及;
c、准许发出所述第一组和第二组数据传递请求的数据处理单元在单个总线周期中访问所述总线。
4.如权利要求1或3要求的总线仲裁方法,其中所述准许数据处理单元的步骤包括登记和调度每个被接收到的和被服务的请求的步骤。
5.如权利要求3要求的方法,其中所述标识步骤包括确定一个期限的步骤,数据传递请求必须在该期限之前被准许访问所述总线。
6.如权利要求1、2或3要求的方法,其中所述选择步骤可选地提供在多组数据传递请求中选择一组数据传递请求的步骤,该组数据传递请求包括相对更高数量的旧的数据请求,对该请求的准许会服务最多数量的数据传递请求并且使得利用最大数量的数据线。
7.一种总线仲裁器,被安排成用于接收来自多个数据处理单元的数据传递请求和用于在所述多个数据处理单元间仲裁共享总线的数据线的访问,所述总线仲裁器包括:
a、逻辑电路,被配置成用于准许一个或多个数据处理单元来访问所述数据总线,以便在单个总线周期中执行数据传递请求,其中所述逻辑电路包括优化器,其将最大化数据传递请求访问的数量做为主优化准则和将最大化在单个总线周期中所利用的数据线的数量做为从优化准则,以及;
b、控制器,能够登记和维护待决的数据传递请求的进度表,用于在一组被标识的待决数据传递请求中启动第一优化,以便准许一个或多个待决的数据传递请求在单个总线周期中访问所述总线,其中所述控制器进一步被配置成在除了所述被标识的请求之外的数据传递请求中启动第二优化,其中在所述第一优化之后仲裁对未被使用的数据线的访问。
8.如权利要求7要求的总线仲裁器,其中如果一个请求待决超出预定时间,则所述控制器标识所述请求。
9.如权利要求8要求的总线仲裁器,其中所述预定时间对应于一个期限,在该期限内数据传递请求必须被准许。
CN2006800339423A 2005-09-14 2006-09-07 用于总线仲裁的方法和系统 Active CN101263465B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP05108430 2005-09-14
EP05108430.9 2005-09-14
PCT/IB2006/053148 WO2007031912A1 (en) 2005-09-14 2006-09-07 Method and system for bus arbitration

Publications (2)

Publication Number Publication Date
CN101263465A CN101263465A (zh) 2008-09-10
CN101263465B true CN101263465B (zh) 2011-11-09

Family

ID=37685803

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800339423A Active CN101263465B (zh) 2005-09-14 2006-09-07 用于总线仲裁的方法和系统

Country Status (5)

Country Link
US (2) US7765350B2 (zh)
EP (1) EP1927054A1 (zh)
JP (1) JP2009508247A (zh)
CN (1) CN101263465B (zh)
WO (1) WO2007031912A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2477109B1 (en) 2006-04-12 2016-07-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
KR100813256B1 (ko) * 2006-06-23 2008-03-13 삼성전자주식회사 버스 중재 장치 및 방법
EP2527972A3 (en) 2006-11-14 2014-08-06 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
TWI385528B (zh) * 2008-12-22 2013-02-11 Univ Ishou Arbitration device for system bus
US8639885B2 (en) * 2009-12-21 2014-01-28 Oracle America, Inc. Reducing implementation costs of communicating cache invalidation information in a multicore processor
US8195883B2 (en) * 2010-01-27 2012-06-05 Oracle America, Inc. Resource sharing to reduce implementation costs in a multicore processor
JP2012014397A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 入出力制御装置、及び情報処理装置
WO2012037491A2 (en) 2010-09-17 2012-03-22 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
KR101826121B1 (ko) 2011-03-25 2018-02-06 인텔 코포레이션 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
KR101620676B1 (ko) 2011-03-25 2016-05-23 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
EP2689327B1 (en) 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
EP2710480B1 (en) 2011-05-20 2018-06-20 Intel Corporation An interconnect structure to support the execution of instruction sequences by a plurality of engines
CN107729267B (zh) * 2011-05-20 2022-01-25 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
US20150039859A1 (en) 2011-11-22 2015-02-05 Soft Machines, Inc. Microprocessor accelerated code optimizer
CN104040490B (zh) 2011-11-22 2017-12-15 英特尔公司 用于多引擎微处理器的加速的代码优化器
US8856415B2 (en) 2012-02-01 2014-10-07 National Instruments Corporation Bus arbitration for a real-time computer system
EP2972845B1 (en) 2013-03-15 2021-07-07 Intel Corporation A method for executing multithreaded instructions grouped onto blocks
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9798686B2 (en) * 2014-11-19 2017-10-24 Silicon Laboratories Inc. Slave side bus arbitration
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
CN110880998B (zh) * 2019-12-03 2022-09-20 锐捷网络股份有限公司 一种基于可编程器件的报文传输方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025370A (en) * 1986-09-02 1991-06-18 Koegel Robert J Circuit for preventing lock-out of high priority requests to a system controller
US5901332A (en) * 1995-06-07 1999-05-04 Advanced Micro Devices Inc. System for dynamically reconfiguring subbusses of data bus according to system needs based on monitoring each of the information channels that make up data bus
US5913044A (en) * 1997-09-18 1999-06-15 International Business Machines Corporation Method and system for simultaneous variable-width bus access in a multiprocessor system
CN1383066A (zh) * 2001-04-25 2002-12-04 松下电器产业株式会社 存储控制装置以及大规模集成电路

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604743A (en) * 1984-11-21 1986-08-05 North American Philips Corporation Bus structure for an image processor
US4908749A (en) * 1985-11-15 1990-03-13 Data General Corporation System for controlling access to computer bus having address phase and data phase by prolonging the generation of request signal
JPH03252847A (ja) * 1990-03-02 1991-11-12 Nec Corp システムバス調停方式
CA2045756C (en) 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5446845A (en) * 1993-09-20 1995-08-29 International Business Machines Corporation Steering logic to directly connect devices having different data word widths
US5881247A (en) * 1995-11-30 1999-03-09 Allen-Bradley Company Llc System having a plurality of frame bytes capable of identifying addressed recipients and assert a busy signal onto the backplane bus to forthrightly abort the message transfer
JPH09223103A (ja) * 1996-02-15 1997-08-26 Ricoh Co Ltd 情報処理システム
JPH10177543A (ja) * 1996-12-18 1998-06-30 Matsushita Electric Ind Co Ltd バス制御回路
US5930484A (en) * 1997-09-18 1999-07-27 International Business Machines Corporation Method and system for input/output control in a multiprocessor system utilizing simultaneous variable-width bus access
US6366984B1 (en) * 1999-05-11 2002-04-02 Intel Corporation Write combining buffer that supports snoop request
JP2001297056A (ja) * 2000-04-11 2001-10-26 Canon Inc 調停回路及びdmaコントローラ
JP4056875B2 (ja) * 2000-08-16 2008-03-05 カウンシル・オブ・サイエンティフィック・アンド・インダストリアル・リサーチ 迅速に行えるマイクロウエーブ媒介固相酵素免疫検定方法
US6820148B1 (en) * 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
JP3598958B2 (ja) * 2000-09-13 2004-12-08 日本電気株式会社 バス調停方法及び情報処理装置
US7480756B2 (en) 2003-11-13 2009-01-20 Koninklijke Philips Electronics N.V. Electronic data processing circuit that transmits packed words via a bus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025370A (en) * 1986-09-02 1991-06-18 Koegel Robert J Circuit for preventing lock-out of high priority requests to a system controller
US5901332A (en) * 1995-06-07 1999-05-04 Advanced Micro Devices Inc. System for dynamically reconfiguring subbusses of data bus according to system needs based on monitoring each of the information channels that make up data bus
US5913044A (en) * 1997-09-18 1999-06-15 International Business Machines Corporation Method and system for simultaneous variable-width bus access in a multiprocessor system
CN1383066A (zh) * 2001-04-25 2002-12-04 松下电器产业株式会社 存储控制装置以及大规模集成电路

Also Published As

Publication number Publication date
US20100257296A1 (en) 2010-10-07
EP1927054A1 (en) 2008-06-04
JP2009508247A (ja) 2009-02-26
US7765350B2 (en) 2010-07-27
US20080256278A1 (en) 2008-10-16
US8041869B2 (en) 2011-10-18
CN101263465A (zh) 2008-09-10
WO2007031912A1 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
CN101263465B (zh) 用于总线仲裁的方法和系统
CN100552656C (zh) 减小芯片上系统互连中的传送等待时间的方法和设备
CN100495374C (zh) 可支持多个内部通道软件请求的直接存储器存取控制器
CN102804158B (zh) 总线架构及从至少一从设备向多个主路径发送数据的方法
WO1992015162A1 (en) Method and apparatus for controlling data communication operations within stations of a local area network
AU1716888A (en) Computer systems
US20080276021A1 (en) Data transfer control apparatus
JPH03214343A (ja) 情報処理システムおよびデータ処理方法
EP0872799A2 (en) PCI bus System
US7065594B2 (en) Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system
CN1335563A (zh) 总线系统和其数据传输方法
FI74158B (fi) Kopplingsanordning foer givande av styrorder i ett mikrocomputersystem.
CN104854845A (zh) 使用高效的原子操作的方法和装置
CN1555513A (zh) 在总线系统中确定时间的方法和装置以及总线系统
US20120030395A1 (en) Circuit configurations and method for controlling a data exchange in a circuit configuration
CN101421705A (zh) 具有高储存容量的多媒体卡
CN102419739A (zh) 多主总线仲裁共享装置以及仲裁方法
US20070101032A1 (en) Bus arbitration circuit and bus arbitration method
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN102708079A (zh) 应用于微控制器的控制数据传输的方法及系统
CN102841813B (zh) 分配存储器资源的系统和方法
US7003609B2 (en) Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system with redundant communication circuits
KR0179882B1 (ko) 피엘씨의 통신파라미터 설정방법 및 그에 따른 데이터 송수신방법
US20100131677A1 (en) Data transfer device and data transfer method
KR20070007763A (ko) 전자 데이터 프로세싱 회로 및 데이터 프로세싱 방법

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
CP03 Change of name, title or address

Address after: 52 high-tech park, 5656AG, Edelhofen, Netherlands

Patentee after: KONINKLIJKE PHILIPS N.V.

Address before: Holland Ian Deho Finn

Patentee before: KONINKLIJKE PHILIPS ELECTRONICS N.V.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230425

Address after: Maine

Patentee after: Network System Technology Co.,Ltd.

Address before: 52 high-tech park, 5656AG, Edelhofen, Netherlands

Patentee before: KONINKLIJKE PHILIPS N.V.

TR01 Transfer of patent right