总线系统及其存取命令的执行调度方法

文档序号:6358496阅读:216来源:国知局
专利名称:总线系统及其存取命令的执行调度方法
技术领域
本发明涉及总线系统及其存取命令的执行调度方法,更具体地说涉及一种包括多个从属器的总线系统,其中主控器发布的命令按照执行准备所定的顺序由从属器执行,和该系统的一种执行调度方法。
总线主控器是能够通过提供地址和控制信息启动读和写操作的系统模块。总线从属器是在指定地址空间范围内响应读或写操作的系统模块。主控器和从属器有代表性的例子为处理器和存储器。主控器和从属器通过总线相互联系。换一种说法就是,主控器发出的命令传送给从属器,和通过从从属器到主控器或者从主控器到从属器传送预定的数据,完成执行传送的命令。
为了使多个主控器能够公平、有效地使用公用总线,已经开发、应用了多种常规仲裁方法。但是,常规的仲裁方法包括仲裁地址/控制总线和数据总线的所属权。换句话说就是,总线仲裁器只用来仲裁总线所属权,在此情况下,主控器对总线具有控制权和使用权。因此,如果根据仲裁算法数据总线和地址/控制总线所属权给予特定的主控器,则此主控器完全拥有数据总线和地址/控制总线直到命令执行完毕。
所以,如果执行与多个传输带宽比主数据总线窄的局部数据总线相连的从属器的命令,比如连接到I/O器的输入/输出(I/O)总线和耦合到引导ROM的ROM总线,那么主数据总线在某些时钟周期内是空闲的。这是因为在数据传输时主数据总线被发布命令的主控器独占,直到要传输的数据通过比主数据总线慢的局部数据总线,也就是直到命令执行完毕。在写命令情况下,数据从主数据总线传输到局部数据总线,主数据总线的空闲时钟周期可以通过将数据保持在位于主数据总线和局部数据总线之间的桥接器中并结束主控器对主数据总线的独占来减少。但是在读命令情况下,数据必须通过主数据总线传输到主控器,主控器需要和主数据总线一起处于空闲状态,直到要传输的数据从局部数据总线传递给主数据总线。因此,整个系统的运行速度由于主数据总线的大量空闲时钟周期被降低。
为了解决上述问题,本发明的目的是提供一种通过调度命令的执行来提高数据传输速度的总线系统,及用于这种系统总线的执行调度方法。
相应地为了实现上述目的,本发明提供了一种存取命令的调度执行方法,包括步骤(a)传送一条或多条由一个或多个主控器发布的存取命令到相应的从属器,(b)存储传送的存取命令,和(c)从属器按照执行准备完成的存取命令顺序执行存储的存取命令。步骤(a)最好包括步骤(a1)暂存存取命令,和(a2)基于先进先出(FIFO)传送存储的存取命令到相应的从属器。步骤(c)包括步骤(c1)从从属器接收表明执行准备完成的提示,和(c2)给相应的从属器发送指令,开始执行存取命令。在这种情况下,主控器发布的存取命令由预定的仲裁器作为仲裁结果传送。
本发明还提供一种总线系统,包括仲裁器,用于按照预定的仲裁结果顺序输出来自一个或多个主控器的一条或多条存取命令;和执行调度器,用于按照仲裁器输出的存取命令授予从属器数据总线,从而使存取命令按照执行准备完成的存取命令顺序执行。执行调度器最好包括存取命令分配单元,用于接收仲裁器输出的存取命令并传送存取命令到相应的从属器;和执行调度单元,用于将被传递的存取命令的开始执行信号传输给在收到存取命令分配单元存取命令的所有从属器中已经发送执行准备完成信号的从属器。
从属器最好包括执行命令存储单元,用于存储从执行调度器传送来的存取命令;和执行单元,用于传送执行准备完成信号给执行调度器,在收到开始执行信号后执行存储在执行命令存储单元里的存取命令,并且在执行完毕后传送一执行完成信号给执行调度单元。
存取命令分配单元最好还包括命令存储单元,用于存储从仲裁器接收的存取命令。命令存储单元包括用于存储存取命令的命令存储队列和用于控制命令存储队列的命令存储队列控制器。
执行调度单元最好包括含有一个或多个存储单元的识别符存储队列,用于存储从存取命令分配单元接收存取命令的相应从属器的识别符;识别符存储队列控制器,用于控制识别符存储队列;比较器,每一个均与各自的存储单元相对应,用于确认存储在存储单元里的识别符是否与传送执行准备完成信号的从属器的识别符一致;和译码器,用于在比较器确认两个识别符一致后将开始执行信号传送给发送执行准备完成信号的从属器。
执行命令存储单元最好包括执行命令存储队列,用于存储存取命令;和执行命令存储队列控制器,用于控制执行命令存储队列。
本发明的上述目的及优点随着结合附图对本发明优选实施例的详细描述显得更加清楚。附图中

图1是按照本发明优选实施例的总线系统的示意图;图2为图1中执行调度器和从属器的方框图;图3为图2中执行调度器和从属器的详细方框图;图4为说明执行调度器中存取命令分配单元和相应从属器的处理过程流程图;图5为说明执行调度器中执行调度单元的处理过程流程图;图6为说明需要执行调度的从属器的处理过程流程图;和图7为说明不需要执行调度的从属器的处理过程流程图。
参照图1,总线系统100包括多个主控器11、12、13和14,多个从属器21、22、23、24和25,总线仲裁器3,和执行调度器4。为了简单起见,未示出多个主控器11-14和多个从属器21-25之间内部连接的数据总线。数据总线包括不同传输速度的主数据总线和局部数据总线。
主控器11-14通常指处理器或直接存储器存取(DMA)控制器,从属器21-25指存储器比如RAM和ROM、I/O器或其他外围器。任一个主控器11-14均可以变为被另一主控器11-14控制的从属器。更进一步讲,主控器和从属器的数目在需要时可以改变。
常规总线系统中的总线仲裁器授权地址/控制总线的所有权给主控器,并允许主控器直接管理从属器和处理来自从属器的响应。但是,依照本发明的总线仲裁器不授权地址/控制总线的所有权给主控器。而是总线仲裁器3接收比如地址、读/写标志、在块中传送数据的长度和主控器11-14所输出的位长之类的用于数据传输的必要信息(指下文中的“存取命令”),然后将存取命令直接传送给从属器21-25并管理从属器21-25。
执行调度器4将总线仲裁器3传送的存取命令发送给相应的从属器21、22、23、24、或25,然后允许从属器21、22、23、34、或25按照执行准备完成的顺序执行存取命令。在这种情况下,执行存取命令意思是通过存取命令想要的数据传输已经完成。
参照图2,图2为图1中执行调度器4和从属器21-25的方框图。执行调度器4包括存取命令分配单元41,用于将总线仲裁器3输出的存取命令传送给相应的从属器21、22、23、24或25;和执行调度单元46,用于将被传递的存取命令的开始执行信号传输给在由存取命令分配单元41传送存取命令到的所有从属器21-25中已经发送执行准备完成信号的从属器21、22、23、24或25。
各从属器21、22、23、24和25均包括执行命令存储单元210、220、230、240或250和执行单元211、221、231、241或251。执行命令存储单元210、220、230、240或250存储从执行调度器4传送来的存取命令。执行单元211、221、231、241或251执行存储在执行命令存储单元210、220、230、240或250里的存取命令,并且在执行完毕后传送一执行完成信号给执行调度单元46。
图3为图2中执行调度器4和从属器21的详细方框图。余下的从属器22-25与从属器21具有相同的结构,因此为了简单起见不再叙述其结构。参照图3,执行调度器4的存取命令分配单元41包括命令存储队列410和用于控制命令存储队列410的命令存储队列控制器411,命令存储队列410作为命令存储单元用于存储从总线仲裁器3收到的存取命令。执行调度器4的执行调度单元46包括作为用于存储从属器21-25的识别符的识别符存储单元的识别符存储队列460和识别符存储队列控制器461、比较器462和译码器463。
识别符存储队列460包含有用于存储通过存取命令分配单元41接收存取命令的从属器21、22、23、24或25的识别符的一个或多个存储单元和控制识别符存储队列460的输入和输出的识别符存储队列控制器461。与各自的存储单元相对应的各比较器462确认存储在各自存储单元里的识别符是否与传送执行准备完成信号的从属器21、22、23、24或25的识别符一致。如果比较器462确认两个识别符一致,则译码器463将开始执行信号传送给发送执行准备完成信号的从属器21、22、23、24或25。在此种情况中,比较器462和译码器463称作逻辑判定,从而可以用不同的电路结构实现。
从属器21的执行命令存储单元210包括执行命令存储队列212,用于存储存取命令;和执行命令存储队列控制器213,用于控制执行命令存储队列212的输入和输出。
基于上述结构,下面将叙述依照本发明优选实施例执行存取命令的调度方法。首先叙述在执行调度器4里的执行处理过程。参照图4,图4为说明执行调度器4中存取命令分配单元41和相应从属器的处理过程流程图。存取命令分配单元41按照预定仲裁结果的顺序接收总线仲裁器3输出的存取命令(步骤4001)。接收的存取命令存储在用作先进先出(FIFO)队列的命令存储队列410中。
存取命令分配单元41基于地址映射表译码存储在命令存储队列410中的存取命令,以识别相应的从属器21、22、23、24或25,然后传送存取命令给相应的从属器21、22、23、24或25(步骤4002)。收到存取命令的从属器21、22、23、24或25应答存取命令分配单元41已经收到存取命令。存取命令的肯定应答到达存取命令分配单元41(步骤4003)。一旦收到存取命令肯定应答信号,存取命令分配单元41输出存取命令肯定应答信号已经到达执行调度单元46的从属器21、22、23、24或25的识别符(步骤4004)。同时,在步骤4002中分配的存取命令由相应的从属器21、22、23、24或25接收(步骤4005)。相应的从属器21、22、23、24或25检查执行命令存储队列212是否全部充满(步骤4006),如果还有空余存储单元,则接收的存取命令被存入执行命令存储队列212(步骤4007)。
图5为说明执行调度器4中执行调度单元46的处理过程流程图。参照图3和图5,如果收到来自预定从属器21、22、23、24或25的存取命令执行完成信号(步骤5001),执行调度单元46检查识别符存储队列460提供的各个存储单元是否为空余,以检查是否还有需要执行的存取命令(步骤5002)。如果识别符存储队列460中存有识别符,执行调度单元46等待来自从属器21、22、23、24或25的存取命令执行准备完成信号(步骤5003)。如果与任何一个存储的识别符相应的从属器21、22、23、24或25的存取命令执行准备完成信号到达(步骤5004),则在各存储单元中提供的比较器462检查存储在相应存储单元中的识别符与到达的存取命令执行准备完成信号的从属器21、22、23、24或25的识别符是否一致。如果两者一致,识别符存储队列控制器461将存储在相应存储单元中的从属器21、22、23、24或25的识别符从识别符存储队列460输出到译码器463。译码器463将识别符存储队列460输出的识别符解码,然后相应于解码结果发送开始执行信号给从属器21、22、23、24或25(步骤5005)。
下面将阐述从属器21-25中的处理过程。在此种情况下,处理过程分为两类一种为在从属器中处理过程不需要执行调度,这是因为只对主数据总线存取;另一种为在从属器中处理过程需要执行调度。
图6为说明需要执行调度的从属器中的处理过程流程图。为了便于解释,假定需要执行调度的从属器为图3中的从属器21。参照图6,从属器21的执行单元211通过执行命令存储队列控制器213检查在执行命令存储队列212中是否存储有存取命令(步骤6001)。如果在执行命令存储队列212中存储有存取命令(步骤6002),执行命令存储队列控制器213基于FIFO从执行命令存储队列212中输出存取命令,并且执行单元211准备传输数据以执行从执行命令存储队列212中输入的存取命令(步骤6003)。
如果传输数据准备完毕(步骤6004),则执行单元211置位执行准备完成信号线从而给执行调度单元46发送执行准备完成信号(步骤6005)。已经发送执行准备完成信号的执行单元211等待从执行调度单元46来的开始执行信号到达(步骤6006)。如果从执行调度单元46来的开始执行信号到达,则执行单元211发送准备好的数据给相应的主控器11、12、13或14(步骤6008)。如果数据传输完毕,执行单元211发送执行完成信号给执行调度单元46(步骤6009)。一旦收到执行完成信号,执行调度器4检查数据总线处于空闲时,循环执行调度存储在识别符存储队列460中的另一个存取命令。
图7为说明不需要执行调度的从属器中的处理过程流程图。为了便于解释,假定不需要执行调度的从属器为图3中的从属器21。如果在执行命令存储队列212中存储有存取命令,则将从属器21的识别符存储于执行调度器4的识别符存储队列460中。此时,由于当从属器21的识别符输入到识别符存储队列460时执行单元211一直置位执行准备完成信号线,执行调度器4的执行调度单元46立即发送开始执行信号给执行单元211,然后执行单元211收到开始执行信号(步骤7001)。
然后,执行单元211准备传输数据以执行从执行命令存储队列212中输入的存取命令(步骤7002)。如果传输数据准备完毕,执行单元存取主数据总线并传输数据给相应的主控器11、12、13或14(步骤7003)。如果数据传输完毕,执行单元211发送执行完成信号给执行调度单元46(步骤7004)。一旦收到执行完成信号,执行调度器4确认数据总线处于空闲时,循环执行调度相应于存储在识别符存储队列460中的识别符的另一个存取命令。
依照本发明优选实施例的存取命令执行调度方法,在总线系统中包括需要存取数据传输速度比主数据总线慢的局部数据总线的从属器时非常高效。这是因为在数据从局部数据总线传输到主数据总线情况下,总线主控器的等待时间通过执行调度方法被减至最少。但是,在从属器实际上不需要执行调度情况下,由于它只存取主数据总线,提供单独的执行调度模块增加了硬件和软件的复杂性。由于这个原因,在上述实施例中,如果从属器21、22、23、24或25只存取主数据总线,从属器21、22、23、24或25一直使执行准备完成信号线有效,从而若主数据总线处于空闲时,立即从执行调度器4接收开始执行信号以传输数据。
尽管实施例是参照包括主数据总线和局部数据总线且主数据总线高速传输数据的总线系统阐述的,本发明并不受限于此。举例来说,即使在存取命令的执行顺序已经由预定的仲裁算法决定之后,除非总线系统具有多个从属器,可以重新调整执行调度,从而存取命令可以由从属器按照与执行准备完成一样的顺序执行,因此提高整个系统的处理速度。
正如前面所述,本发明重新调整命令执行顺序,以便于首先完成执行准备的从属器首先执行命令或存取数据总线,因此提供了一种提高了整个数据处理速度的总线系统及其存取命令执行调度方法。具体地说,依照本发明,如果从属器连接在数据传输速度比主数据总线慢的局部数据总线上,从属器可以有效存取局部数据总线,因此减少主数据总线的空闲时钟周期并提高整个系统的处理速度。
权利要求
1.一种存取命令的调度执行方法,包括步骤(a)传送一条或多条由一个或多个主控器发布的存取命令到相应的从属器;(b)存储传送的存取命令;和(c)从属器按照执行准备完成的存取命令顺序执行存储的存取命令。
2.如权利要求1所述的方法,其中步骤(a)包括步骤(a1)暂存存取命令;和(a2)基于先进先出(FIFO)传送存储的存取命令到相应的从属器。
3.如权利要求1所述的方法,其中步骤(c)包括步骤(c1)从从属器接收表明执行准备完成的提示;和(c2)给相应的从属器发送指令,开始执行存取命令。
4.如权利要求1所述的方法,其中主控器发布的存取命令由预定的仲裁器作为仲裁结果传送。
5.如权利要求2所述的方法,其中主控器发布的存取命令由预定的仲裁器作为仲裁结果传送。
6.如权利要求3所述的方法,其中主控器发布的存取命令由预定的仲裁器作为仲裁结果传送。
7.一种总线系统,包括仲裁器,用于按照预定的仲裁结果顺序输出来自一个或多个主控器的一条或多条存取命令;和执行调度器,用于按照仲裁器输出的存取命令授予从属器数据总线,从而使存取命令按照执行准备完成的存取命令顺序执行。
8.如权利要求7所述的总线系统,其中的执行调度器包括存取命令分配单元,用于接收仲裁器输出的存取命令并传送存取命令到相应的从属器;和执行调度单元,用于将被传递的存取命令的开始执行信号传输给在收到存取命令分配单元存取命令的所有从属器中已经发送执行准备完成信号的从属器;和其中的从属器包括执行命令存储单元,用于存储从执行调度器传送来的存取命令;和执行单元,用于传送执行准备完成信号给执行调度器,在收到开始执行信号后执行存储在执行命令存储单元里的存取命令,并且在执行完毕后传送一执行完成信号给执行调度单元。
9.如权利要求8所述的总线系统,其中存取命令分配单元进一步包括命令存储单元,用于存储从仲裁器接收的存取命令。
10.如权利要求9所述的总线系统,其中命令存储单元包括用于存储存取命令的命令存储队列和用于控制命令存储队列的命令存储队列控制器。
11.如权利要求8所述的总线系统,其中执行调度单元包括识别符存储队列,含有一个或多个存储单元,用于存储从存取命令分配单元接收存取命令的相应从属器的识别符;识别符存储队列控制器,用于控制识别符存储队列;比较器,每一个均与各自的存储单元相对应,用于确认存储在存储单元里的识别符是否与传送执行准备完成信号的从属器的识别符一致;和译码器,用于在比较器确认两个识别符一致后将执行开始信号传送给发送执行准备完成信号的从属器。
12.如权利要求9所述的总线系统,其中执行调度单元包括识别符存储队列,含有一个或多个存储单元,用于存储从存取命令分配单元接收存取命令的相应从属器的识别符;识别符存储队列控制器,用于控制识别符存储队列;比较器,每一个均与各自的存储单元相对应,用于确认存储在存储单元里的识别符是否与传送执行准备完成信号的从属器的识别符一致;和译码器,用于在比较器确认两个识别符一致后将执行开始信号传送给发送执行准备完成信号的从属器。
13.如权利要求10所述的总线系统,其中执行调度单元包括识别符存储队列,含有一个或多个存储单元,用于存储从存取命令分配单元接收存取命令的相应从属器的识别符;识别符存储队列控制器,用于控制识别符存储队列;比较器,每一个均与各自的存储单元相对应,用于确认存储在存储单元里的识别符是否与传送执行准备完成信号的从属器的识别符一致;和译码器,用于在比较器确认两个识别符一致后将执行开始信号传送给发送执行准备完成信号的从属器。
14.如权利要求8所述的总线系统,其中执行命令存储单元包括执行命令存储队列,用于存储存取命令;和执行命令存储队列控制器,用于控制执行命令存储队列。
全文摘要
一种总线系统及用于该总线系统的执行调度方法。执行调度方法包括步骤:(a)传送一条或多条由一个或多个主控器发布的存取命令到相应的从属器;(b)存储传送的存取命令;和(c)从属器按照执行准备完成的存取命令顺序执行存储的存取命令。照此方法,重新调整了存取命令的执行顺序,从而提供了一种提高了数据处理速度的总线系统及其执行调度方法。
文档编号G06F13/38GK1334516SQ0013646
公开日2002年2月6日 申请日期2000年12月26日 优先权日2000年7月21日
发明者金镇守 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1