总线控制系统及其方法

文档序号:6560323阅读:152来源:国知局
专利名称:总线控制系统及其方法
技术领域
本发明涉及一种总线控制系统及其方法,并且尤其涉及一种包括总线仲裁器的总线控制系统及其方法,所述总线仲裁器用于在多个总线主装置之间仲裁使用总线。
背景技术
通常使用总线控制系统,其用于把多个装置连接到一个总线并且用于在所述装置之间仲裁使用所述总线。请求使用总线的装置被称作总线主装置。由总线主装置通过总线所访问的装置被称作总线从装置。用于向总线主装置许可(仲裁)使用总线的仲裁电路被称作仲裁器。
近年来,随着信息处理单元和电子设备等已经发展得更为高效并且具有更高级的功能,从而增加了连接到总线的总线主装置,因而所述总线控制系统变得更为复杂。由总线所转送并处理的数据也变得多样化,包括容许转送延迟的信息(例如文本信息)以及不容许转送延迟的信息(例如音频和电影信息)。因此,想要能够更高效地仲裁使用总线的技术。
在总线控制系统中,仲裁器通过依照由所指定的仲裁算法所定义的次序来使用总线并且通过提供用于使用所述总线的权利来执行仲裁。存在两种方法用于仲裁算法,它们是;固定优先级方法,其中优先向具有较高优先级的总线主装置给予使用总线的权利;以及循环(round robin)方法,其中以相同比率向每个总线主装置给予使用总线的权利。常规的仲裁器使用固定优先级方法或循环方法来仲裁总线。
例如,在日本未经审查的专利公开申请6-243092中公开了使用固定优先级方法的常规仲裁器。图14示出了在日本未经审查的专利公开申请6-243092中所公开的常规总线控制系统的配置。总线主装置901a、901b和总线从装置910共同被连接到总线940。仲裁器920响应于来自总线主装置901a和901b使用总线的请求来仲裁使用总线940。如果许可使用所述总线,那么总线主装置901a和901b经由总线940向总线从装置910转送数据。
总线监视电路950监视在总线940中所执行的数据转送,并且根据所检测的通信频率和总线的等待时间来向优先级寄存器930指定总线主装置901a和901b的优先级。仲裁器920依照在优先级寄存器930中所存储的优先级来许可总线主装置901a或总线主装置901b使用总线。例如通过按优先次序列出具有较长总线等待时间的总线主装置来减少诸如超限运行(overrun)和欠载运行(underrun)之类的错误。
然而在常规的总线控制系统中,仲裁器始终只利用固定优先级方法来执行总线仲裁。在应用循环方法而不是固定优先级方法的情况下,只利用循环方法来执行总线仲裁。特别是,常规的总线控制系统只利用一种仲裁算法来进行操作,所述仲裁算法可以是由仲裁器预先定义的固定优先级方法或循环方法。常规的总线控制系统在一种仲裁算法的范围内改变仲裁次序。即,常规的总线控制系统依照相同的因素(要素)来执行仲裁,其中所述因素是优先级,即便在改变所述优先级之后也是如此。
在常规的总线控制系统中,如果使用固定优先级方法来转送适于固定优先级方法的数据,那么可以高效地仲裁并利用总线。然而如果使用固定优先级方法来转送适于循环方法的数据,那么不能高效地仲裁并利用总线。类似地,在常规的总线控制系统中,如果使用循环方法来转送适于固定优先级方法的数据,那么不能高效地利用总线。如果不能高效地使用总线,那么用于数据转送的等待时间可能会增加,可能会产生超限运行或欠载运行,可能会导致数据转送的瓶颈,由此降低了系统性能。因此常规的总线控制系统不能够在任何时间以最适当的仲裁算法来仲裁总线。
此外,在常规的总线控制系统中,需要总线监视电路来监视通信频率和数据转送等待以便切换优先级,并且由硬件来确定切换时间。为此,只有当检测到预定条件时才切换优先级。通过指定总线等待时间的阈值以便根据所述总线等待时间来改变优先级,可以保证用于总线主装置的最低吞吐量。然而它甚至要求检测总线等待时间的阈值并且并不总是选择最适当的优先级。此外,利用硬件控制,对于每个总线或总线主装置,需要用于检测等待时间等的电路。如果总线或总线主装置的数目很大,那么所述电路可能很复杂,这增加了电路大小。
如上所述,现在已经发现,常规的总线控制系统并不总是能够利用最适当的仲裁算法来仲裁总线,并且由于只能使用指定的仲裁算法来仲裁所述总线,所以不能高效地使用所述总线。

发明内容
依照本发明的一方面,提供了一种总线控制系统,其包括共同连接到总线的多个总线主装置,用于依照多个仲裁算法中的任何一个来在多个总线主装置之间仲裁使用总线的总线仲裁器,和用于切换所述多个仲裁算法的仲裁算法控制单元。总线控制系统能够切换总线仲裁器的仲裁算法,并且能够利用最适当的仲裁算法来仲裁使用所述总线,由此能够高效地使用所述总线。
依照本发明的另一方面,提供了一种总线控制系统,其包括共同连接到总线的多个总线主装置,用于依照预定仲裁算法来在多个总线主装置之间仲裁使用总线的总线仲裁器,和用于切换所述多个总线主装置的优先级或仲裁次序的仲裁算法控制单元。总线控制系统能够在诸如循环方法或固定优先级方法之类的一个仲裁算法内切换优先级或仲裁次序,使得能够利用最适当的仲裁算法来仲裁使用总线并且高效地使用所述总线。
依照本发明的另一方面,提供了一种用于在多个总线主装置之间仲裁使用总线的总线控制方法,其包括依照预先确定的多个不同仲裁算法中的任何一个来在多个总线主装置之间仲裁使用总线,以及根据要由所述多个总线主装置执行的处理来切换所述多个仲裁算法。该总线控制方法能够切换用于总线的仲裁算法,使得能够利用最适当的仲裁算法来仲裁使用所述总线并且高效地使用所述总线。
本发明提供了一种总线控制系统和方法,其通过选择总线主装置来仲裁总线从而能够高效地使用所述总线。


结合附图根据以下描述,本发明的以上及其它目的、优点和特征将变得更加清楚,其中图1是示出依照本发明的总线控制系统的配置的配置图;图2A和2B是用于解释依照本发明的仲裁算法的说明图;图3A和3B是用于解释依照本发明的仲裁算法的说明图;图4是示出依照本发明的系统控制单元的配置的框图;图5是示出依照本发明的总线控制过程的流程图;图6是示出依照本发明的仲裁算法确定过程的流程图;图7A和7B是用于解释依照本发明的仲裁算法的说明图;图8是示出依照本发明的总线控制系统的配置的配置图;图9A和9B是用于解释依照本发明的仲裁算法的说明图;图10A和10B是用于解释依照本发明的仲裁算法的说明图;图11A和11B是用于解释依照本发明的仲裁算法的说明图;图12A和12B是用于解释依照本发明的仲裁算法的说明图;图13是示出依照本发明的仲裁算法确定过程的流程图;和图14是示出依照常规控制系统的总线控制系统的配置的配置图。
具体实施例方式
现在这里将参考说明性实施例来描述本发明。那些本领域技术人员应当认识到,使用本发明的教导可以实现许多替代实施例,并且本发明不局限于用于说明目的所图示的实施例。
第一实施例以下详细描述了第一实施例的总线控制系统。此实施例的总线控制系统其特征在于它依照所要执行的处理来切换仲裁器的仲裁算法。
以下参考图1详细地描述此实施例的总线控制系统的硬件配置。总线控制系统例如是由一个或多个芯片构成的系统LSI,其被提供给诸如个人计算机、信息处理单元和蜂窝式电话之类的电子设备。
如图1所示,总线控制系统包括总线主装置101a、101b和101c,总线从装置110,仲裁器120,算法寄存器130。总线主装置101a、101b和101c与总线从装置110共同连接到总线140。
总线主装置101a、101b和101c向仲裁器120进行用于使用总线的请求。如果仲裁器120允许它们使用总线,那么它们经由总线140向总线从装置110转送数据。
在此例子中,总线主装置101a是用于控制整个系统操作的CPU(系统控制单元)1。总线主装置101b和101c是用于在CPU1的控制之下执行各种操作的辅助功能单元。总线主装置101b例如是用于直接转送数据以便与之外的存储器通信的DMA(直接存储器访问)2。总线主装置101c是用于处理音频和图像数据的DSP(数字信号处理器)3。总线从装置110是用于存储为操作CPU1、DMA2和DSP3所必须的信息的存储器(存储单元)4,诸如RAM。存储器4例如存储了要由CPU1执行的程序和计算数据、用于DMA2的外部数据以及用于DSP3的音频和图像数据。
例如,当总线控制系统在蜂窝式电话中进行呼叫时,在CPU1中执行用于呼叫的程序,由用户所输入的音频在DSP3中被转换为音频数据,并且所述音频数据被存储到存储器4。在音频数据被CPU1处理之后,所述音频数据被DMA2转送到外面。从外面所接收的音频数据被存储到存储器4,由CPU1处理,在DSP3中被转换为音频,并且最后输出给用户。
算法寄存器130为仲裁器120指定用于仲裁使用总线的仲裁算法。仲裁算法用于依照确定因素(要素)来选择总线主装置以便执行仲裁。仲裁算法依照所指定的因素(要素)来向总线仲裁器指定用于许可总线主装置所使用总线的次序,即用于提供使用所述总线的权利的次序。固定优先级方法或循环方法被指定到算法寄存器130作为仲裁算法。在固定优先级方法中,依照优先级因素来选择总线主装置。在循环方法中,依照预定次序而不是优先级(非优先级方法)来选择总线主装置。例如,利用循环方法,指定“0”,而利用固定优先级方法,指定“1”。在此实施例中,CPU1、系统控制单元根据要执行的处理来向算法寄存器130指定仲裁算法。换句话说,CPU1作为仲裁算法控制单元操作以便切换到不同的仲裁算法。
仲裁器120依照多个不同仲裁算法中的任何一个来执行总线仲裁。在此实施例中,仲裁器120依照向算法寄存器130所指定的仲裁算法来执行总线仲裁。更加具体地,响应于来自总线主装置101a、101b和101c的总线使用请求,仲裁器120依照被指定到算法寄存器130的循环方法或固定优先级方法来选择总线主装置,以便许可使用总线。
以下参考图2A到3B详细地描述由此实施例的仲裁器120所使用的仲裁算法,即由CPU1指定到算法寄存器130的仲裁算法。
图2A和2B示出了其中仲裁算法是循环方法的例子。图2A示出了其中利用循环方法选择并许可每个总线主装置使用总线的次序。在循环方法中,优先级对于所有总线主装置来说是相等的,并且以相同的比率许可所述总线主装置使用总线。即,在所指定的单元,依照101a、101b和101c的次序来重复选择总线主装置使用总线。作为例子,由每个数据转送单元来选择下一总线主装置。
图2B示出了其中依照循环方法来执行仲裁以转送数据的例子。例如,从总线主装置101a产生用于转送数据A的四个总线使用请求。从总线主装置101b产生用于转送数据B的四个总线使用请求。从总线主装置101c产生用于转送数据C的两个总线使用请求。利用循环方法,依照101a、101b和101c的次序来许可总线主装置使用总线,并且依照A、B和C(T0到T3)的次序来转送数据。在许可总线主装置101a到101c使用总线之后,用于总线主装置101c的数据C完成转送(T3到T6)。然后,重复许可总线主装置101a和101b使用总线,并且转送所有数据A和B(T6到T10)。如图2B所示,如果循环方法被用为仲裁算法,从每个总线主装置平均地转送数据,并且数据A和B在邻近时间完成转送(T9和T10)。
图3A和3B示出了其中依照固定优先级方法执行仲裁的例子。图3A示出了其中利用固定优先级方法来许可总线主装置使用总线的次序。在固定优先级方法中,对每个总线主装置指定不同的优先级,并且优先许可具有较高优先级的总线主装置使用总线。换句话说,首先选择具有最高优先级的总线主装置,并且在处理完所述总线主装置的所有处理之后,选择具有次高优先级的总线主装置。在此例子中,总线主装置101a的优先级最高,总线主装置101b的优先级第二高,而总线主装置101c的优先级最低。可以预先向仲裁器120指定优先级,或者CPU1可以向算法寄存器130指定优先级。
图3B示出了其中依照固定优先级方法来执行仲裁以便转送数据的例子。从每个总线主装置所产生的总线使用请求与图2B中的相同。在固定优先级方法中,重复许可具有最高优先级的总线主装置101a使用总线,并且数据A被完成转送(T0到T4)。然后重复许可具有次高优先级的总线主装置101b使用总线,并且数据B被完成转送(T4到T8)。然后重复许可具有第三高优先级的总线主装置101c使用总线,并且数据C被完成转送(T8到T10)。如图3B所示,如果固定优先级方法用于仲裁算法,那么优先从具有较高优先级的总线主装置转送数据,导致数据A首先被完成转送。在如图2B所示的循环方法中,到T9时数据A被完成转送,而在固定优先级方法中,到T4时数据A被完成转送。
以下参考图4详细地描述CPU1、系统控制单元(仲裁算法控制单元)的功能块。图4中的每个块由用于CPU1的硬件或要在所述硬件中执行的软件构成。例如CPU1依照在存储器4中所存储的程序来执行处理,以与硬件合作来实现每个块的功能。
如图4所示,CPU1包括总线输入/输出单元210、算法确定单元211、算法设置单元212和处理执行单元213。
总线输入/输出单元210利用总线140输入/输出数据。为了使用总线140,总线主装置首先向仲裁器120输出总线使用请求,等待许可以便使用总线,并且经由所述总线140执行数据转送。
算法确定单元211从存储器4读取要由总线输入/输出单元210所执行的程序。然后,算法确定单元211识别所要执行的处理的特性并且确定用于所述处理的适当仲裁算法。
算法设置单元212向算法寄存器130指定用于表明由算法确定单元211所确定的仲裁算法的信息。
处理执行单元213执行从存储器4中所读取的程序的处理。例如处理执行单元213依照程序执行各种计算,与存储器4进行数据转送,或者控制DMA2和DSP3的操作。
以下参考图5的流程图来详细地描述此实施例的总线控制系统的总线控制过程。例如当用户启动包括呼叫、电视电话和电子邮件之类的某种应用程序时,开始总线控制过程。
CPU1执行以下所描述的步骤S401到S404。首先算法确定单元211获取要执行的处理(S401)。用于处理用户操作的程序和必要的数据被从存储器4输入到处理判定211。
然后算法确定单元211确定适于在S401中所获取的处理的仲裁算法(S402)。例如,算法确定单元211依照从存储器4所读取的程序或数据来确定最适当的仲裁算法是循环方法还是固定优先级方法。稍后描述仲裁算法的确定过程的细节。
然后算法设置单元212向算法寄存器130指定在S402中所确定的仲裁算法(S403)。在由算法确定单元211所确定的仲裁算法是循环方法的情况中,算法设置单元212向算法寄存器指定“0”。在仲裁算法是固定优先级方法的情况中,算法设置单元212向算法寄存器130指定“1”。
然后处理执行单元213执行在S401中所获取的处理(S404)。处理执行单元213依照从存储器4中所读取的程序或数据来执行处理。当在S403中指定算法寄存器130时,仲裁器120依照所指定的仲裁算法来仲裁使用总线(S405)。特别地,如图2A到3B所示,仲裁器120进行仲裁并且数据被各自的总线主装置转送。
如果在S404中执行处理,那么例如CPU1、DMA2和DSP3向仲裁器120输出总线使用请求,以便CPU1处理存储器4中的数据,所述DMA2向存储器4转送外部数据,或者DSP3转换所述存储器4中的音频数据。如果算法寄存器130是“0”,那么仲裁器120利用循环方法来许可总线使用请求。如果算法寄存器130是“1”,那么仲裁器120利用固定优先级方法来许可总线使用请求。CPU1、DMA2和DSP3依照被许可的次序来使用总线140向存储器4执行数据转送。
以下参考图6的流程图来详细地描述在图5的S402中所示出的仲裁算法的确定过程。确定过程用于CPU1的算法确定单元211确定适于所要执行的处理的仲裁算法。
首先算法确定单元211获得每个总线主装置的总线使用模式(S501)。例如算法确定单元211获得处理模式,即当执行处理时每个总线主装置使用总线的模式,作为用于确定适当仲裁算法的要素。总线的使用模式例如包括使用总线的概率、要转送的数据量和数据转送频率。除以上要素之外,使用模式可以包括数据的特性,诸如是否可以许可延迟以及是否需要接连转送数据。
然后算法确定单元211判定在S501中所获得的总线使用模式在总线主装置之间是均等还是不均等的(S502)。作为判定仲裁算法的基准,算法确定单元211判定总线使用模式是均等还是不均等的,即判定每个总线主装置是否依照几乎相同的模式来使用总线。特别地,算法确定单元211判定总线使用概率和数据转送量是否几乎相同。
如果在S502中判定总线使用模式几乎是均等的,那么算法确定单元211确定仲裁算法会是循环方法(S503)。例如如果每个总线主装置使用总线的概率及其它因素几乎是相同的,换句话说,如果所述总线被每个总线主装置平等地使用,那么算法确定单元211确定仲裁算法会是循环方法。更具体地,在如图2B中从每个总线主装置平等地执行数据转送并且完成总线主装置101a的数据A转送的时间可以是T9的情况下,仲裁算法被指定为循环方法。
如果在S502中判定总线使用模式是不均等的,那么算法确定单元211确定仲裁算法会是固定优先级方法(S504)。例如,如果每个总线主装置使用总线的概率及其它因素是不同的,或者如果需要在其它总线主装置之前转送数据,即在所指定的总线主装置优先使用所述总线的情况中,算法确定单元211确定仲裁算法会是固定优先级方法。更具体地,如果如图3B所示,需要从总线主装置101a优先转送数据并且需要在T4前完成转送,那么仲裁算法被确定为固定优先级方法。
如上所述,在此实施例中,寄存器的设置值被改变并且根据所要执行的处理来切换用于仲裁器的仲裁算法。在其中每个总线主装置被平等处理的情况下,仲裁算法被确定为循环方法(循环算法)。另一方面,在其中指定的总线主装置被优先处理的情况下,仲裁算法被确定为固定优先级方法(固定优先级算法)。把本发明应用于蜂窝式电话使得能够选择适于诸如呼叫、电视电话和电子邮件之类的应用的仲裁算法。
通过切换仲裁算法而不是如常规技术中在一个仲裁算法内切换优先级,更灵活地指定了用于仲裁使用总线的次序,由此能够依照更适当的次序来仲裁。因此可以有效地使用总线并且减少用于等待数据转送的时间。结果大大地减少了由于总线主装置等待使用总线所产生的超限运行/欠载运行。此外,如果总线主装置包括用来存储正等待被转送的数据的FIFO存储器,那么可以通过降低转送等待时间来减少FIFO存储器的量。
此外,通过指定在总线主装置最大负载时所要使用的仲裁算法,可以计算使用总线的概率,从而可以容易地估算向所述总线主装置提供的FIFO存储器的量。例如,如果在应用本发明之前,DMA(即总线主装置)能够使用总线的概率在最坏的情况下是1/4,那么使用依照本发明的1/2固定优先级方法可以减少一半FIFO存储器的量。
还可以减少用于数据转送的等待时间,因此也缩短了用于完成每个总线主装置的处理的时间。据此,在具有诸如多处理器之类的子系统的冗余配置系统中,可以通过停止已经完成处理的CPU的时钟并且通过切换到节能模式来降低功耗。
此外,在如常规技术中硬件将监视总线使用的方法中,还需要监视电路。然而在此实施例中,通过使用软件控制,可以抑制电路大小的增加,并且甚至还便于控制具有大量总线主装置的大型系统。
此外,利用硬件控制,只有当监视电路等检测到预定条件时的情况才可以被控制,由此只保证了总线主装置的最低吞吐量。利用此实施例,当在执行处理之前仲裁算法被预先切换时,不必等待直到监视电路检测到预定条件,以便使用最适当的方法来仲裁总线,有助于改进总线使用的效率。
特别是,在此实施例中,通过使用软件而不是硬件来控制能以更灵活的条件进行控制。更具体地,对于需要保证最低吞吐量的处理,可以选择满足所述条件的仲裁算法。对于其它总线主装置能够长时间等待的处理,可以选择保证最大吞吐量的仲裁算法。
第二实施例以下详细地描述依照本发明第二实施例的总线控制系统。此实施例的总线控制系统其特征在于它将多个总线主装置分组并且根据所要执行的处理来切换组间和组内仲裁算法。
这里描述了当将总线主装置分组时仲裁算法的简单例子,以便与第一实施例相比较。图7A和7B示出了在总线主装置101a、101b和101c之间仲裁使用总线的例子,就像图2A到3B一样。
图7A是把总线主装置101a到101c分组为两个组以便进行仲裁的例子。在此例子中,总线主装置101a被分组为组1,而总线主装置101b和101c被分组为组2。在此实施例中,指定了两个仲裁算法,它们是;用于确定仲裁次序(用于许可总线使用请求的次序)的组间仲裁算法,和用于确定组中每个总线主装置的仲裁次序的组内仲裁算法。例如用于仲裁组1和2的仲裁算法将被指定为循环方法,并且用于仲裁总线主装置101b和总线主装置101c的仲裁算法将被指定为循环方法。在这种情况下,按顺序重复地选择组1和2。如果组1被选择,那么许可总线主装置101a使用总线。如果组2被选择,那么重复地选择总线主装置101b或总线主装置101c来许可使用总线。
图7B是其中依照图7A的仲裁算法来转送数据的具体例子。从每个总线主装置所产生的总线使用请求与图2B中的相同。在此方法中,总线主装置101a和总线主装置101b或101c被选择,并且依照A、B、A和C的次序来转送数据(T0到T4)。依照类似的方式,转送数据A、B、A和C,并且完成总线主装置101a和101c的数据A和C(T4到T8)。然后重复地选择总线主装置101b并且数据B被完成转送(T8到T10)。如在图2B和3B中,利用循环方法,到T9时数据A被完成转送,而利用固定优先级方法,到T4时数据A被完成转送。然而在此方法中,如图7B所示,到T7时数据A被完成转送。据此,与第一实施例中的简单循环方法或固定优先级方法相比,第二实施例能够取决于处理而更详细地调整。
以下参考图8详细地描述此实施例的总线控制系统的硬件配置。在图8中,与图1中的组件相同的组件由与其相同的附图标记来标示,并且省略了对其的详细描述。
除图1中的组件之外,总线控制系统包括总线主装置102a、102b和102c。每个总线主装置共同被连接到总线140。例如总线主装置102a就像总线主装置101a一样是CPU。总线主装置102b就像总线主装置101b一样是DMA。总线主装置102c就像总线主装置101c一样是DSP。
图8是把六个总线主装置分组为三个组的例子。在此例子中,总线主装置101a和102a被分组为组1。总线主装置101b和102b被分组为组2。总线主装置101c和102c被分组为组3。所述组是指定仲裁算法的单元。总线主装置所属的组可以预先指定到仲裁器120,或者CPU可以指定到算法寄存器130。
总线主装置101a是如第一实施例中用于控制整个系统的CPU1,具有与图4中相同的功能块。总线控制过程与图5相同。在此实施例中,CPU1的每个块向算法寄存器130指定组间仲裁算法和组内仲裁算法。换句话说,CPU1是用于切换组间和组内仲裁算法的仲裁算法控制单元。
例如假定向算法寄存器130指定几个数据位。对于第一位,当指定组间仲裁算法时,指定“0”表明循环方法或者“1”表明固定优先级方法。从第二位以后,对于每个组作为组内仲裁算法指定“0”表明循环方法或者“1”表明固定优先级方法。仲裁器120依照所指定的仲裁算法来在组之间仲裁使用总线的次序。例如,仲裁器120查阅算法寄存器130,并且如果第一位是“0”,那么仲裁器120依照循环方法来在组间进行仲裁。如果第一位是“1”,那么仲裁器120依照固定优先级方法来在组间进行仲裁。如果第一位之后的位是“0”,那么利用循环方法来执行组内仲裁。如果第一位之后的位是“1”,那么利用固定优先级方法来执行组内仲裁。
以下参考图9A到12B详细地描述在此实施例的仲裁器120中所使用的仲裁算法,即CPU1向算法寄存器130所指定的仲裁算法。
图9A和9B示出了其中组间仲裁算法被指定为循环方法并且组内仲裁算法也被指定为循环方法的例子。图9A示出了其中依照仲裁算法选择每个总线主装置被许可使用总线的次序。在此方法中,组之间的优先级是相等的,并且在组内总线主装置之间的优先级也是相等的。因而以相同的比率许可每个组使用总线,并且同样以相同的比率许可每个总线主装置使用所述总线。
在此方法中,按顺序重复地选择组1、2和3,并且逐个选择每个组中的总线主装置。当每个组被选择时,选择所述组中的总线主装置之一来许可使用总线。
图9B示出了其中利用图9A中的方法来执行仲裁以便转送数据的例子。例如,假定产生各自来自总线主装置101a和102a的两个总线使用请求以转送数据A1和A2,产生各自来自总线主装置101b和101b的两个总线使用请求以转送数据B1和B2,并且产生各自来自总线主装置101c和102c的两个总线使用请求以转送数据C1和C2。
在此方法中,按顺序选择来自组1的总线主装置101a、来自组2的总线主装置101b以及来自组3的总线主装置101c。然后按顺序选择来自组1的总线主装置102a、来自组2的总线主装置102b以及来自组3的总线主装置102c。结果,按顺序来转送数据A1、B1、C1、A2、B2和C2(T0到T6)。依照类似的方式选择总线主装置来许可使用总线,并且按顺序转送数据A1、B1、C1、A2、B2和C2,从而完成所有的数据转送(T6到T12)。
如图9B所示,如果组间和组内仲裁算法被指定为循环方法,那么不仅可以从每个组平等地转送数据,而且可以从所述组中的每个总线主装置平等地转送数据。在这种情况下,来自组1到3的数据A2、B2和C2在邻近时间完成转送(T10到T12),而在组1中,数据A1和A2在邻近时间完成转送(T7和T10)。
在图10A和10B中,组间仲裁算法被指定为固定优先级方法,而组内仲裁算法被指定为循环方法。图10A示出了其中依照此方法来许可总线主装置使用总线的次序。利用此方法,在组之间指定不同的优先级,而在组中的总线主装置之间的优先级是相等的。因此,优先许可具有较高优先级的组使用总线,而以相同的比率许可组中的总线主装置使用所述总线。
换句话说,利用此方法,首先选择具有最高优先级的组,并且在完成该组中的总线主装置的处理之后,选择具有次高优先级的组。当一个组被选择时,重复选择所述组中的每个总线主装置来许可使用总线。在此例子中,组1的优先级最高,组2的优先级第二高,而组3的优先级最低。
图10B示出了其中利用图10A中的方法来执行仲裁以便转送数据的例子。从每个总线主装置所产生的总线使用请求与图9B中的相同。在此方法中,对于具有最高优先级的组1,依照总线主装置101a和102a的次序来许可使用总线以便完成数据A1和A2的数据转送(T0到T4)。然后对于具有次高优先级的组2,依照总线主装置101b和102b的次序来许可使用所述总线,完成数据B1和B2的数据转送(T4到T8)。然后对于具有第三最高优先级的组3,依照总线主装置101c和102c的次序来许可使用总线以便完成数据C1和C2的数据转送(T8到T12)。
如图10B所示,在组间仲裁算法被指定为固定优先级方法并且组内仲裁算法被指定为循环方法的情况中,优先选择具有较高优先级的组来执行数据转送,并且平等地选择所述组中的每个总线主装置来执行数据转送。在这种情况下,到T4时完成组1的数据转送,比其它组更快。在组1内,数据A1和A2在邻近时间完成转送(T3和T4)。
图11A和11B示出了其中组间仲裁算法被指定为循环方法并且组内仲裁算法被指定为固定优先级方法的例子。图11A示出了其中利用此方法来许可使用总线的次序。利用此方法,在组之间的优先级是相等的,而在组内的优先级是不同的。据此,以相同的比率来许可这些组使用总线,而在组内,优先许可具有较高优先级的总线主装置使用所述总线。
换句话说,利用这种方法,按顺序重复地选择组1、2和3,并且逐个选择每个组中的总线主装置。当一个组被选择时,选择在该组内具有较高优先级的总线主装置。如果完成了具有较高优先级的总线主装置的所有处理,那么选择具有下一最高优先级的总线主装置。在此例子中,在组2内总线主装置101a具有最高优先级,总线主装置102a具有次高优先级。在组2内,总线主装置101b具有最高优先级,并且总线主装置102b具有次高优先级。在组3内,总线主装置101c具有最高优先级,并且总线主装置102c具有次高优先级。
图11B示出了其中利使用图11A中的方法来执行仲裁以便转送数据的例子。从每个主装置所产生的总线使用请求与图9B中的相同。在此方法中,依照组1、2和3的次序来选择总线主装置。选择在组1中具有较高优先级的总线主装置101a一次,选择在组2中具有较高优先级的总线主装置101b一次,并且选择在组3中具有较高优先级的总线主装置101c一次,来许可使用总线。然后数据A1、B1和C1被完成转送(T0到T6)。此外,选择在组1中具有较低优先级的总线主装置102a一次,选择在组2中具有较低优先级的总线主装置102b一次,并且选择在组3中具有较低优先级的总线主装置102c一次,来许可使用总线。然后数据A2、B2和C2被完成转送(T6到T12)。
如图11B所示,在组间仲裁算法被指定为循环方法并且组内仲裁算法被指定为固定优先级方法的情况中,平等地选择每个组来执行数据转送,而在组内,优先选择具有较高优先级的总线主装置来转送数据。在这种情况下,在组1到3中的数据A2、B2和C2在邻近时间完成转送(T10到T12),而在组1中,数据A1在T4完成转送,比数据A2更快。
图12A和12B示出了其中组间仲裁算法被指定为固定优先级方法并且组内仲裁算法也被指定为固定优先级方法的例子。图12A示出了其中使用此方法来许可使使用总线的次序。利用此方法,组之间的优先级是不同的,并且组内总线主装置之间的优先级也是不同的。据此,优先许可具有较高优先级的组使用总线,并且优先许可在所述组内具有较高优先级的总线主装置使用所述总线。
换句话说,利用此方法,首先选择具有最高优先级的组,并且在完成所述组中的总线主装置的所有处理之后,选择具有下一最高优先级的组。当一个组被选择时,选择具有较高优先级的总线主装置,并且在完成该总线主装置的所有处理之后,选择具有下一最高优先级的总线主装置。在此例子中,组1具有最高优先级,组2具有次高优先级,并且组3具有最低优先级。在组1内,总线主装置101a具有最高优先级,并且总线主装置102a具有次高优先级。在组2内,总线主装置101b具有最高优先级,并且总线主装置102b具有次高优先级。在组3内,总线主装置101c具有最高优先级,并且总线主装置102c具有次高优先级。
图12B示出了其中利用图12A中的方法来执行仲裁以便转送数据的例子。从每个总线主装置所产生的总线使用请求与图9B中的相同。利用此方法,对于具有最高优先级的组1,首先重复地选择具有较高优先级的总线主装置101a来完成转送数据A1。然后重复地选择具有较低优先级的总线主装置102来完成转送数据A2(T0到T4)。对于具有次高优先级的组2,首先重复地选择具有较高优先级的总线主装置101b来完成转送数据B1。然后选择具有较低优先级的总线主装置102b来完成转送数据B2(T4到T8)。然后对于具有第三最高优先级的组3,首先重复地选择具有较高优先级的总线主装置来完成转送数据C1。然后选择具有较低优先级的总线主装置102c来完成转送数据C2(T8到T12)。
如图12B所示,在组间和组内仲裁算法被指定为固定优先级方法的情况中,优先选择具有较高优先级的组来执行数据转送,并且优先选择在所述组中具有较高优先级的总线主装置来执行数据转送。在这种情况下,到T4时完成组1的数据转送,比其它组更快。在组1内,在T2完成数据A1的数据转送,比数据A2更快。
尽管在此实施例中,组内仲裁算法对于所有组被指定为相同的,然而可以对每个组指定不同的仲裁算法。此外,多个组(子组)在一个组中可以形成层次结构,并且可以向每个子组和层次指定仲裁算法。
以下参考图13的流程图来详细地描述此实施例的确定过程。确定过程就像图6一样是图5的S402中的过程,其中CPU1的算法确定单元211确定适于所要执行的处理的仲裁算法。用于确定仲裁算法的因素与第一实施例相同。
首先,算法确定单元211获得每个总线主装置的总线使用模式(S601)。在此例子中,算法确定单元211除每个总线主装置的总线使用模式之外还获得每个组的总线使用模式。例如从每个总线主装置的总线使用概率和数据转送量来计算每个组的总线使用概率和数据转送量。
然后,算法确定单元211判定在S601中所获得的总线使用模式在组之间是均等还是不均等的(S602)。如果总线使用模式是均等的,那么算法确定单元211确定组间仲裁算法会是循环方法(S603)。如果总线使用模式是不均的,那么算法确定单元211确定组间仲裁算法会是固定优先级方法(S604)。例如,如果每个组的总线使用概率及其它因素几乎是相同的,那么算法确定单元211指定组间仲裁算法会是循环方法。特别地,在其中可以在每个组中以与图9B和图11B中的相同比率来执行数据转送并且组1中的数据A1和A2可以在T10完成转送的情况下,仲裁算法将被指定为循环方法。此外,如果每个组的总线使用概率及其它因素是不同的,那么算法确定单元211指定组间仲裁算法会是固定优先级方法。更具体地是,在其中需要从组1中优先执行数据转送并且需要在T4以前完成组1中的数据A1和A2的情况下,仲裁算法将被指定为固定优先级方法。
然后,算法确定单元211判定在S601中所获得的总线使用模式在每个组中的总线主装置之间是均等还是不均相等的(S605)。如果总线使用模式是均等的,那么算法确定单元211确定组内仲裁算法会是循环方法(S606)。如果总线使用模式是不均等的,那么算法确定单元211确定组内仲裁算法会是固定优先级方法(S607)。例如,如果组中的每个总线主装置的总线使用概率及其它因素几乎是相同的,那么算法确定单元211指定组内仲裁算法会是循环方法。特别地,在其中对于组中的每个总线主装置可以以与图9B和图11B中的相同比率来执行数据转送并且总线主装置101a的数据A1可以在T7或T3完成转送的情况下,仲裁算法将被指定为循环方法。此外,如果组中的每个总线主装置的总线使用概率及其它因素是不同的,那么算法确定单元211指定组间仲裁算法会是固定优先级方法。更具体地是,如果需要优先从总线主装置101a转送数据,并且对于总线主装置101a的数据A1的数据转送如图11B和12B所示需要在T3或T4以前完成,那么仲裁算法被确定为固定优先级方法。
尽管在此例子中,在确定组间仲裁算法之后确定组内仲裁算法,但确定次序并不限于上述次序。例如可以在确定组内仲裁算法之后确定组间仲裁算法,或者可以同时确定组间仲裁算法和组内仲裁算法。
如至此所描述的,在此实施例中,当根据所要执行的处理来切换仲裁算法时,切换组间仲裁算法和组内仲裁算法。这能够为处理模式选择更适当的仲裁算法。例如在一个处理中,总线主装置101a和102负荷重,而其它总线主装置负荷轻。在这种处理中,组间仲裁算法被指定为固定优先级方法以便向组1给出优先权。在另一处理中,总线主装置101a和102a负荷重,而其它总线主装置要平等地处理。在这种处理中,组间仲裁算法被指定为固定优先级方法,并且组内仲裁算法被指定为循环方法。因此,此实施例与第一实施例相比较能够更详细地调整并且允许更高效的总线使用,据此比所述第一实施例更好地缩短了总线等待时间。
其它实施例在以上例子中,尽管依照所要执行的处理来切换仲裁算法,然而可以根据所要执行的处理来在一个仲裁算法内切换用于选择总线主装置的次序。在固定优先级方法中可以依照所要执行的处理来改变每个总线主装置或组的优先级。例如具有最高概率来使用总线的总线主装置可以被指定为具有最高优先级。在这种情况下,用于表明仲裁算法是固定优先级方法的信息以及用于表明总线主装置和组的优先级的信息被存储到算法寄存器130。然后仲裁器120依照所述优先级来仲裁总线。
此外,在循环方法中可以依照所要执行的处理来改变每个总线主装置或组的优先级。例如对于具有相同概率来使用总线的总线主装置或组,但是一个总线主装置或一个组需要被首先处理,那么它可以被指定为第一选择。在这种情况下,用于表明仲裁算法是循环方法的信息和用于表明选择每个总线主装置或组的次序的信息被存储到算法寄存器130。然后仲裁器120依照该选择次序来仲裁总线。
尽管在以上例子中,循环方法和固定优先级方法被切换作为仲裁算法,然而也可以切换到其它算法。例如切换到随机选择总线主装置的方法,或切换到按产生总线使用请求的次序来选择总线主装置的方法。
此外,在以上例子中,使用CPU来判定所要执行的处理模式以便切换仲裁算法。然而用于表明适于处理的仲裁算法的数据可以被存储到存储器4,以便当开始所述处理时,CPU不需要判定所述处理而只是引用所存储的数据以便把所述数据直接存储到算法寄存器。例如如果用户按下蜂窝式电话上的拨号按钮,那么从存储器中读取支持拨号操作的仲裁算法以便指定所述仲裁算法。
很明显,本发明不局限于以上实施例,并且在不脱离本发明的范围和精神的情况下可以进行修改和改变。
权利要求
1.一种总线控制系统,其包括共同连接到总线的多个总线主装置;总线仲裁器,用于依照多个预定仲裁算法中的任何一个来在所述多个总线主装置之间仲裁使用所述总线;和仲裁算法控制单元,用于切换所述多个仲裁算法。
2.如权利要求1所述的总线控制系统,其中所述仲裁算法控制单元依照要由所述多个总线主装置所执行的处理来切换所述多个仲裁算法。
3.如权利要求1所述的总线控制系统,其中所述仲裁算法控制单元在执行所述多个总线主装置的处理之前切换所述多个仲裁算法。
4.如权利要求1所述的总线控制系统,其中所述仲裁算法控制单元把所述多个仲裁算法切换为包括循环方法或固定优先级方法的算法。
5.如权利要求4所述的总线控制系统,其中,所述仲裁算法控制单元对于所述多个总线主装置几乎均等地使用所述总线的处理,把所述多个仲裁算法切换为循环方法;并且所述仲裁算法控制单元对于所述多个总线主装置不均等地使用所述总线的处理,把所述多个仲裁算法切换为固定优先级方法。
6.如权利要求4所述的总线控制系统,其中,所述仲裁算法控制单元对于所述多个总线主装置各自几乎以相等概率使用所述总线的处理,把所述多个仲裁算法切换为循环方法;并且所述仲裁算法控制单元对于所述多个总线主装置各自以不同概率使用所述总线的处理,把所述多个仲裁算法切换为固定优先级方法。
7.如权利要求1所述的总线控制系统,其中所述仲裁器把所述多个总线主装置分组为多个组;所述仲裁器依照组内仲裁算法,即用于在所述多个组内的多个总线主装置之间仲裁的仲裁算法,以及依照组间仲裁算法,即用于在所述多个组之间仲裁的仲裁算法,来仲裁所述总线;并且所述仲裁算法控制单元切换所述组内仲裁算法和组间仲裁算法。
8.如权利要求7所述的总线控制系统,其中所述仲裁算法控制单元把所述组内仲裁算法和组间仲裁算法切换为包括循环方法或固定优先级方法的算法。
9.如权利要求8所述的总线控制系统,其中,所述仲裁算法控制单元对于要由在组中包括的多个总线主装置所执行的处理均等地使用所述总线的过程,把组内仲裁算法切换为循环方法;所述仲裁算法控制单元对于要由在组中包括的多个总线主装置所执行的处理不均等地使用所述总线的过程,把组内仲裁算法切换为固定优先级方法;所述仲裁算法控制单元对于要由在所述多个组中包括的多个总线主装置所执行的处理均等地使用所述总线的过程,把组间仲裁算法切换为循环方法;并且所述仲裁算法控制单元对于要由在所述多个组中包括的多个总线主装置所执行的处理不均等地使用所述总线的过程,把组间仲裁算法切换为固定优先级方法。
10.如权利要求8所述的总线控制系统,其中,所述仲裁算法控制单元对于要由在组中包括的多个总线主装置所执行的处理各自以几乎相等的概率来使用所述总线的过程,把组内仲裁算法切换为循环方法;所述仲裁算法控制单元对于要由在组中包括的多个总线主装置所执行的处理各自以不同的概率来使用所述总线的过程,把组内仲裁算法切换为固定优先级方法;所述仲裁算法控制单元对于要由在所述多个组中包括的多个总线主装置所执行的处理各自以几乎相等的概率来使用所述总线的过程,把组间仲裁算法切换为循环方法;并且所述仲裁算法控制单元对于要由在所述多个组中包括的多个总线主装置所执行的处理各自以不同的概率来使用所述总线的过程,把组间仲裁算法切换为固定优先级方法。
11.如权利要求1所述的总线控制系统,还包括用于设置所述仲裁算法的算法寄存器,其中,所述仲裁算法控制单元把切换的所述仲裁算法设置到所述算法寄存器;并且所述总线仲裁器依照设置到算法寄存器的仲裁算法来在多个总线主装置之间进行仲裁。
12.如权利要求1所述的总线控制系统,其中所述仲裁算法控制单元是所述多个总线主装置之一。
13.一种总线控制系统,其包括共同连接到总线的多个总线主装置;总线仲裁器,用于依照预定仲裁算法来在所述多个总线主装置之间仲裁使用所述总线,和仲裁算法控制单元,用于依照要由所述多个总线主装置所执行的处理来在所述仲裁算法中切换所述多个总线主装置的优先级或仲裁次序。
14.如权利要求13所述的总线控制系统,其中所述仲裁算法控制单元在执行要由所述多个总线主装置执行的处理之前切换所述优先级或仲裁次序。
15.一种总线控制方法,用于在多个总线主装置之间仲裁使用总线,该方法包括依照多个预定仲裁算法中的任何一个来在所述多个总线主装置之间仲裁使用所述总线;以及切换所述多个仲裁算法。
16.如权利要求15所述的总线控制方法,其中依照要由所述多个总线主装置执行的处理来执行切换所述多个仲裁算法。
17.如权利要求15所述的总线控制方法,其中在执行所述多个总线主装置的处理之前执行切换所述仲裁算法。
18.如权利要求15所述的总线控制系统,其中仲裁算法的切换将把所述多个仲裁算法切换为包括循环方法或固定优先级方法的算法。
全文摘要
一种总线控制系统,其包括共同连接到总线的多个总线主装置,用于依照多个预定仲裁算法中的任何一个来在所述多个总线主装置之间仲裁使用总线的总线仲裁器,和用于切换所述多个仲裁算法的仲裁算法控制单元。
文档编号G06F13/362GK1896981SQ20061010638
公开日2007年1月17日 申请日期2006年7月14日 优先权日2005年7月15日
发明者风间敦 申请人:恩益禧电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1