CN100367258C - 主从系统中直接内存存取控制器及总线结构 - Google Patents

主从系统中直接内存存取控制器及总线结构 Download PDF

Info

Publication number
CN100367258C
CN100367258C CNB2005100832634A CN200510083263A CN100367258C CN 100367258 C CN100367258 C CN 100367258C CN B2005100832634 A CNB2005100832634 A CN B2005100832634A CN 200510083263 A CN200510083263 A CN 200510083263A CN 100367258 C CN100367258 C CN 100367258C
Authority
CN
China
Prior art keywords
data
temporary transient
storage element
bus
transient storage
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
CNB2005100832634A
Other languages
English (en)
Other versions
CN1696917A (zh
Inventor
冯汉忠
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1696917A publication Critical patent/CN1696917A/zh
Application granted granted Critical
Publication of CN100367258C publication Critical patent/CN100367258C/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

一主从计算机系统的直接内存存取控制器以及一主从系统中依据一直接内存存取协议以传输数据的方法。根据本发明的一直接内存存取控制器系包含连接至一内存总线的一第一数据路径,其中此内存总线系与至少一内存装置通信。此直接内存存取控制器亦包含连接至一外围装置总线的一第二数据路径,其中此外围装置总线系与至少一外围装置通信。并且,此直接内存存取控制器系包含一传输数据装置用以在至少一内存装置其中的一与至少一外围装置其中的一间传输数据。

Description

主从系统中直接内存存取控制器及总线结构
技术领域
本发明涉及从一组件传输数据至另一组件,特别是有关于一种在一主从计算机系统中利用一直接内存存取机制(scheme)以传输数据。
背景技术
许多计算机系统包含直接内存存取(direct memory access,DMA)以从一组件传输数据至另一组件。DMA的优点在于计算机系统的主处理器或中央处理单元(central processing unit,CPU)并不涉及于实际数据传输。由使用DMA机制,CPU可以同时执行一与DMA数据传输无关的应用程序。
一般而言,DMA是由一DMA控制器的装置所控制。例如:在一“读取”命令期间,该DMA控制器会安排一内存装置传送其内所储存的数据至一输出/输入装置或外围装置。其中传输的模式可依据DMA系统是一“主从(master/slave)”计算机系统的一部分,或一“非主从(non-master/slave)”计算机系统的一部分,来取决于该DMA控制器本身可或不可实际处理数据。例如:在一主从系统中,DMA控制器动作如一中继装置(relay),当数据从一组件被搬移至另一组件时,DMA控制器会先接收后再传送此数据。
请参考图1,其为一“非主从”计算机系统的一传统DMA电路10的方块图。在此DMA电路10中,一DMA控制器12并非在数据传输的路径内,但却可控制数据的传输。当一数据读取程序将执行时,DMA控制器12会拨出(appropriate)地址信号及控制信号给一内存装置14,以指示该内存装置14将所要求的数据输出到一总线16上。该DMA控制器12亦会拨出控制信号给一外围装置18,以指示该外围装置18从总线16上读取数据。在此方式中,数据从内存装置14经由总线16直接传输至外围装置18,DMA控制器12并无接触到数据。
第二图则为一“主从”计算机系统的一传统DMA电路20的方块图。其中内存装置22、外围装置24以及DMA控制器26皆连接至同一总线28且共享的。该DMA控制器26包含一暂时储存单元30,用以在数据传输期间暂时性地储存数据。DMA控制器26亦包含一连接DMA控制器26至共享总线28的数据通信线(data communication link)32,其允许DMA控制器26在处理数据后将该数据传送至共享总线28,或从共享总线28接收数据。
在一主从系统中,总有一主控者(master)及一从属者(slave)涉及于该数据传输。由于内存装置22及外围装置24两者在此系统中皆为从属装置,因此他们不能直接彼此沟通。也因此,DMA控制器26的动作即如一主控装置般,会从一从属装置中继数据至另一从属装置。于此,即需两主从装置执行程序(transaction)以传输数据。
例如在一数据读取程序期间,进行两单独的执行程序以从内存装置22取得所要的数据以传送至外围装置24。在第一数据传输阶段中,一第一主从通信路径是沿着DMA控制器26(主控者)与内存装置22(从属者)之间的共享总线28而建立。该DMA控制器26会送出地址信号及控制信号给内存装置22,要求存取储存其内的特定内存位置中的数据,此时,内存装置22会响应并送出所要求的数据于共享总线28上,然后DMA控制器26经由数据路径32,从共享总线28读取数据并将此数据储存于暂时储存单元30中。
接着,执行读取程序的第二数据传输阶段。在此第二数据传输阶段中,一第二主从通信路径是沿着DMA控制器26与外围装置24之间的共享总线28而建立。DMA控制器26会送出控制信号给外围装置24,指示数据正要传送,然后DMA控制器26会从其暂时储存单元30经由数据路径32传送数据至共享总线28及至外围装置24,而该外围装置24即会遵从指示从共享总线28上读取数据。及此可知,从图2中,共享总线28、DMA控制器26及数据路径32在每一数据传输阶段期间被占用,无论是从内存读取或是写至外围装置。
图3是一主从系统的一传统DMA电路20于上述两阶段数据传输处理的一时序图。图3的信号代表DMA控制器26的活动。例如:上面信号代表当DMA控制器26从内存读取数据(例如“从内存读取”);以及下面信号代表当DMA控制器26将数据写至外围装置(例如“写至外围装置”)。在第一时间区间t1中,第一数据封包(参照如数据1)从内存(例如内存装置22)被读出并且暂时储存。然后在第二时间区间t2中,数据1从DMA控制器26被写至一外围装置(例如外围装置24)。在第一数据封包(数据1)于时间区间t1、t2传输成功后,一第二数据封包(数据2)于时间区间t3、t4才可能从内存被读出并且随后被写至外围装置。在时间区间t4之后,一第三数据封包(数据3)才可被传输,以此类推。由上述时序图可知,每一数据封包的传输皆需两个时间区间。
虽然主从系统如图2所示的传统DMA电路20可提供中央处理单元不需介入传输数据的优点,然而,传统的DMA电路20却会受限于在一特定时间中有多少资料可以从一从属者被传输至另一从属者的情况。由于在任一时间中,仅有一数据传输阶段的情形会出现在共享总线28,因此造成了传输上的瓶颈。并且,另一瓶颈发生在DMA控制器26自己本身,其虽具有传送或接收数据的能力,但并不是在任一时间两种能力兼具。而此瓶颈的发生是因为从DMA控制器26到共享总线28的数据路径32被限制于仅能单向通信。由于上述这些瓶颈的产生,限制了传统系统20有关于从一从属者至另一从属者数据传输速度的效率。因此,现有的主从系统传统电路,必须要有两个时间区间才得以成功将数据从一从属装置传输至另一从属装置。
以往亦有一些解决的方案曾经被提出以克服传统主从系统的缺点。例如增加内部总线的操作频率而使得整体效率得以增加,然而此方案却使得主从接口的设计复杂化,且其一般皆会要求将从属装置重新设计以可操作于较快的速度。而对于那些已存在的从属者或正在设计的从属者而言,增加内部总线频率就可能需要重新设计这些组件的额外工作时间及困难度。
综合上述可知,目前极需一可消除传统系统缺失的新结构。此类的新系统在一使用DMA的主从系统中,应更有效率传输数据于一从属者对从属者的执行程序中;再者,此新系统的操作无须为达成上述目的而增加频率。
发明内容
本发明的目的在于提供一种主从系统中直接内存存取控制器及总线结构,即揭露在一使用直接内存存取(Direct Memory Access,以下皆以DMA简称的)协议的主从计算机系统传输数据的系统及方法。本发明系统中所提供的DMA控制器及其传输方法不仅可增加上述数据传输的效率以消除公知技术中所产生的瓶颈,且尚可无须增加额外的DMA操作频率即可完成。
为实现上述目的,本发明提供的一种适用于主从计算机系统的直接内存存取电路,该直接内存存取电路包含:
一内存装置;
一外围装置;
一直接内存存取控制器,具有一第一及一第二数据路径;
一第一总线,连接该内存装置与该第一数据路径;以及
一第二总线,连接该外围装置与该第二数据路径;
其中该直接内存存取控制器系包含一第一及一第二暂时储存单元以及一第一及一第二开关,该第一开关提供一第一状态以电性耦接该第一暂时储存单元至该第一总线以及一第二状态以电性耦接该第二暂时储存单元至该第一总线,该第二开关提供一第一状态以电性耦接该第一暂时储存单元至该第二总线以及一第二状态以电性耦接该第二暂时储存单元至该第二总线。
所述的直接内存存取电路,其中该第一及该第二开关系用以使该第一暂时储存单元耦接至该第一及该第二总线其中的一,并使该第二暂时储存单元耦接至该第一及该第二总线其中的另一,其中该第一及该第二开关用以使该直接内存存取控制器可以从该内存装置读取一数据封包,并同时将另一数据封包写至该外围装置。
本发明的一主从计算机系统的一直接内存存取控制器,该直接内存存取控制器包含:
一第一数据路径,连接至一内存总线,该内存总线与至少一内存装置通信;
一第二数据路径,连接至一外围装置总线,该外围装置总线与至少一外围装置通信;以及
一传输数据装置,用以在该至少一内存装置其中的一与该至少一外围装置其中的一间传输数据;其中该传输数据装置包含在该至少一内存装置其中的一与该至少一外围装置其中的一间同时传送一第一部分的数据及接收一第二部分的数据,其中该传输数据装置包含:
复数个双储存装置,每一双储存装置分别连接至一个别内存总线,其中该每一双储存装置包含至少一第一暂时储存单元与一第二暂时储存单元及至少一第一开关与一第二开关;
其中该第一部份的数据的传送是从该第一数据路径读取该第一部份的数据至其中一第一暂时储存单元,再由该第一暂时储存单元传送至该第二数据路径;以及
其中该第二部份的数据的接收是从该第二数据路径读取该第二部份的数据至其中一第二暂时储存单元,再由该第二暂时储存单元传送至该第一数据路径。
所述的直接内存存取控制器,其中,在一读取程序期间,该传输数据装置传送该第一部分的数据给该外围装置总线,并且同时从该内存总线接收该第二部分的数据。
所述的直接内存存取控制器,其中在一第一时间区间期间,从该至少一内存装置其中的一读取一第一数据封包至该第一暂时储存单元,在一第二时间区间期间,从该至少一内存装置其中的一读取一第二数据封包至该第二暂时储存单元,其中该第二时间区间在该第一时间区间之后。
所述的直接内存存取控制器,其中在该第二时间区间期间,从该第一暂时储存单元传送该第一数据封包至该至少一外围装置其中之一,在一第三时间区间期间,从该第二暂时储存单元传送该第二数据封包至该至少一外围装置其中之一,其中该第三时间区间系在该第二时间区间之后。
所述的直接内存存取控制器,其中设定该第一开关的状态以电性耦接该内存总线至该第一及该第二暂时储存单元其中之一,设定该第二开关的状态以电性耦接该外围装置总线至该第一及该第二暂时储存单元其中之另一。
所述的直接内存存取控制器,还包含:
一第一组数据路径,连接复数个内存总线,每一内存总线与至少一内存装置通信;以及
一第二组数据路径,连接复数个外围装置总线,每一外围装置总线与至少一外围装置通信;
其中该传输数据装置同时在复数个内存装置与复数个外围装置之间传送数据。
所述的直接内存存取控制器,其中该传输数据装置还包含:
一多功能开关装置,从该每一双储存装置的一输出连接至该复数个外围装置总线。
本发明提供的一种传输数据方法,由一从属装置传输数据至另一从属装置,该传输数据方法包含:
从一第一总线读取一第一数据封包;
暂时储存该第一数据封包于一第一暂时储存单元;以及
将该第一数据封包从该第一暂时储存单元写至一第二总线,并且同时从该第一总线读取一第二数据封包。
所述的传输数据方法,还包含:
暂时储存该第二数据封包于一第二暂时储存单元;以及
将该第二数据封包从该第二暂时储存单元写至该第二总线,并且同时从该第一总线读取一第三数据封包。
所述的传输数据方法,还包含:
当耦接该第一总线至该第一及该第二暂时储存单元其中之一时,耦接该第二总线至该第一及该第二暂时储存单元其中之另一。
所述的传输数据方法,其中耦接该第一及该第二总线至该第一及该第二暂时储存单元还包含设定一第一及一第二开关的耦接状态。
所述的传输数据方法,还包含:
在一后续时间区间期间,反转该第一及该第二开关的耦接状态。
所述的传输数据方法,还包含:
监视该第一及该第二暂时储存单元的剩余容量以决定反转该第一及该第二开关的耦接状态的时间。
所述的传输数据方法,还包含:
监视一数据流的结束时间以决定反转该第一及该第二开关的耦接状态的时间。
附图说明
图1为一非主从系统的一传统DMA电路的方块图;
图2为一主从系统的一传统DMA电路的方块图;
图3为使用图2的DMA电路于主从系统的数据传输时序图;
图4为本发明所教示的一主从系统的一较佳改良DMA电路实施例的方块图;
图5为图4所示的DMA控制器的一较佳实施例的方块图;
图6为使用图4的DMA电路于主从系统的数据传输时序图;
图7为本发明所教示的一主从系统的另一较佳改良DMA电路实施例的方块图;以及
图8为图7所示的DMA控制器的一较佳实施例的方块图。
具体实施方式
本发明克服公知技术的效率问题,其允许在一使用DMA数据传输处理的主从系统中的两个从属装置间传输大量数据。由划分共享总线使其成为两个或更多个分隔总线,并且改变传统DMA控制器的设计,以消除上述所提及的瓶颈,由此,数据传输速率可实质增加至少两倍。同时,本发明亦没有增加计算机系统的操作频率及没有改变从属装置的设计,即可使本发明的DMA控制器进行较快的DMA数据传输程序。根据本发明所改良的DMA控制器可以(1)从内存装置读取及(2)同时写至外围装置,由此更有效率将数据由一从属装置传输至另一从属装置。在另一实施例中,DMA控制器尚可执行复数个同时读取及写入传输程序,以使得效率更明显提升。
本发明是有关于一主从计算机系统的DMA电路、DMA控制器以及在一主从计算机系统中执行一DMA数据传输的方法。在此所描述的几个实施例其中之一包含一DMA电路,其包含一内存装置、一外围装置以及一具有一第一及一第二数据路径的DMA控制器。此DMA电路还包含一第一总线,连接内存装置与DMA控制器的第一数据路径;以及一第二总线,连接外围装置与DMA控制器的第二数据路径。此DMA控制器包含一第一及一第二暂时储存单元以及一第一及一第二开关。此第一开关提供一第一状态以电性耦接第一暂时储存单元至第一总线以及一第二状态以电性耦接第二暂时储存单元至第一总线。此第二开关提供一第一状态以电性耦接第一暂时储存单元至第二总线以及一第二状态以电性耦接第二暂时储存单元至第二总线。
请参考图4,其显示一主从计算机系统内一DMA电路40的一较佳实施例的方块图。根据此实施例的DMA电路40包含一内存装置42、一外围装置44以及一DMA控制器46。相较于公知的单一共享总线,本发明的DMA电路40包含两总线48及50。
内存装置42及DMA控制器46是配置用以介接(interface)至总线48(在此参照为“内存总线”)。虽然在图4中仅有一内存装置,然而也可以多个内存装置连接至内存总线48。从此观点,沿着内存总线48可以存取复数个内存装置其中的任一内存装置。在一特殊范例中,若仅有一内存装置42连接至内存总线48,则该内存总线48可由该内存装置42与DMA控制器46直接连接而被取代。
外围装置44及DMA控制器46是配置用以介接(interface)至总线50(在此参照为“外围装置总线”)。虽然在图4中仅有一外围装置,然而也可以多个外围装置连接至外围装置总线50。由此观点,沿着外围装置总线50可以存取复数个外围装置其中的任一外围装置。当仅有一外围装置44连接至外围装置总线50,则外围装置总线50可由该外围装置44与DMA控制器46直接连接而被取代。
此外,DMA控制器46包含两数据路径52及54以连接至对应的总线48及50。由划分传统总线成为两总线(内存总线48及外围装置总线50),DMA控制器46可沿着内存总线48及数据路径52与内存装置42互动,并且同时沿着外围装置总线50及数据路径54与外围装置44互动。这些同时的互动可在没有跨越一共享总线或共享数据路径的信号的情况下执行。使用此并联结构,DMA控制器46可从内存装置42读取一数据封包,并且同时将其它数据封包写至外围装置44。
图5是图4所示的DMA控制器46的一较佳实施例的方块图。在此实施例中,DMA控制器46包含一第一暂时储存单元60以及一第二暂时储存单元62。DMA控制器46亦包含一第一开关64以及一第二开关66。暂时储存单元60、62是在一交替方式中经由开关64连接至内存总线48;并且,储存单元是在一交替方式中经由开关66连接至外围装置总线50。DMA控制器46可能包含一处理或控制装置(未示出)以在必要时用以设定开关64及66的状态。
开关64及66可由任何适当的电子式及/或机械式组件所形成,例如晶体管、机电装置、机械式切换开关或者是其它开关式装置。此外,依数据在开关内移动的方向,开关64及66可由多任务器或者是解多任务器所取代。在另一实施例,开关64及66可包含逻辑组件的组合以提供此处所描述及所需的开关功能。
其中,开关64及66的状态将被设定于此类的方式,即当开关66电性耦接至外围装置总线50与暂时储存单元60、62其中的一时,开关64即会电性耦接至内存总线48与暂时储存单元60、62其中之另一。因此开关64及66是用以搭配操作藉以同时改变有关彼此的状态,由此可在任何时间中连接一暂时储存单元与一总线。在此事项中,每一暂时储存单元在一时间中将仅耦接至一总线。
如图5所示,开关64及66是设定于一初始状态,由此开关64耦接至内存总线48至第一暂时储存单元60,并且开关66耦接至外围装置总线50至第二暂时储存单元62。然而需注意的是,开关的初始状态(如图所示)仅为图解说明目的,上述的初始状态亦可能相反情况。图4的DMA电路40及图5的个别DMA控制器46的操作,将在图6有关的范例时序图中解释说明。
图6说明一时序方块图,其展示数个连续的数据封包(数据1、数据2...等)如何使用图4的DMA电路40传输的一范例。在此范例中,是假设开关的初始状态配置如图5中所示。而熟习该项技术人员应了解依先前数据传输的操作、其它初始状态的预设或其它条件时,开关的初始状态可能相反。
在初始时间区间t1中,DMA控制器46会提供内存装置42控制信号及地址信号。在内存装置42接收这些信号后,内存装置42会将所需的数据(数据1)放置于内存总线48上。DMA控制器46会从内存总线48读取数据封包(数据1),并将数据1储存于第一暂时储存单元60。在t1期间中,开关66会电性耦接至第二暂时储存单元62与外围装置总线50。然而,因为在t1期间并没有数据出现在第二暂时储存单元62,因此在第二暂时储存单元62及外围装置44之间并无数据传输。
在一第二时间区间t2中,开关呈现相反操作以使第一开关64耦接至第二暂时储存单元62与内存总线48,并且使第二开关66耦接至第一暂时储存单元60与外围装置总线50。在第二时间区间t2中,一第二数据封包(数据2)从内存被读取,此数据被储存于先前为空(empty)的第二暂时储存单元62。并且,由前一时间区间t1暂时被保留于第一暂时储存单元60的数据封包(数据1),被写至外围装置44。
在一第三时间区间t3中,每一开关的状态再次相反以允许内存装置将数据3写入第一暂时储存单元60,并由此覆盖在时间区间t2已传输至外围装置44且不须再暂时储存的数据1。而在时间区间t2之前被储存于第二暂时储存单元62的数据2被写至外围装置44。所应了解的是,上述这些步骤是被重复用于下一数据封包直到所有数据传输成功。
虽然上述开关64、66的状态在某些预设的时间区间相反,但是开关反转的时序可能会依其它因素而优于时间因素。例如:当目前填入至暂时储存单元的数据呈现满载状态、将近满载或是达到一预设门坎值(threshold)时,DMA控制器46会在填入及切换开关64、66时,监视每一暂时储存单元的剩余储存容量。在此方式中,当一连续数据流(stream)被读入DMA控制器46时,开关可被配置用以允许每一暂时储存单元填入直到达到某种程度。当没有数据可被读入所填入的储存单元时,开关的状态是相反并且填入其它暂时储存单元。此数据填入及开关反转的处理被重复直到全部数据流结束。
一数据流的结束提供另一状态,即授权开关的反转。在此范例,一部分被填入的暂时储存单元可能保有尚未被传送至外围装置总线50的数据。当数据流在暂时储存单元达到某种填入程度前结束时,则装置被提供用以反转开关以传输最后部分数据至外围装置。当一数据流结束时,DMA控制器可监视并计算没有数据被读入目前所填入暂时储存单元的时间长度。当在一设定的时间长度没有数据被接收时,DMA控制器46再次反转开关以强行从部分所填入的储存单元冲出(flush out)数据,以传送至外围装置。在这些条件,开关确实反转之前,直接记忆存取控制器46还是监视其它暂时储存单元以确定提供足够时间从此传送所有数据。
从图6中可了解,在与图3的公知技术时序图的比较下,根据本发明的DMA电路40,其提供一比传统系统快两倍的数据传输速率。并且,本发明提供一系统,此系统并不要求增加操作频率而完成上述的技艺。由将传统总线划分成为两总线并允许DMA控制器同时地读取及写入,本发明能够克服先前技艺的数据传送的一些瓶颈。
图7为本发明所教示的DMA电路70的一第二实施例的方块图。DMA电路70包含一DMA控制器72,此DMA控制器72具有一数量M的内存数据路径741、742、...、74M用以分别连接相对数量的内存总线761、762、...、76M。图4所示的内存总线48在本实施例中被划分成为复数个内存总线761、762、...、76M,每一内存总线76连接任意数量的内存装置(未绘出)。如果需要,内存总线76其等本身可经由桥接装置(bridge)(未绘出)连接彼此。根据本实施例,由于内存总线76并列排列,因此DMA控制器72可从每一对应的内存总线76同时存取一内存装置而没有信号干扰。
此外,DMA电路70包含一数量N的外围装置数据路径781、782、...、78N用以分别连接相对数量的外围装置总线801、802、...、80N。在图7的实施例中,图4所示的外围装置总线50被划分成复数个外围装置总线801、802、...、80N,每一外围装置总线80连接至任意数量的外围装置(未绘出)。如果需要,外围装置总线80可经由桥接装置(bridge)(未绘出)连接彼此。如在此所描述的外围装置总线的并列排列,其允许DMA控制器72可以从每一对应的外围装置总线80同时存取一外围装置而没有信号干扰。由此观点,DMA控制器72可以与数量M的内存总线及数量N的外围装置总线同时通信。数量M与N最好系相同,但如果需要则也可以不同。在此实施例中,数据传送处理仅受较少数量及/或受最低操作频率的总线所限制。因此就本系统的数据传输速率将比有关的传统速率快两倍。
图8为图7所示的DMA控制器72的一实施例的方块图。本实施例的DMA控制器72包含一数量M的双储存装置(dual storage device)841、842、...、84M,每一双储存装置84连接对应的内存数据路径741、742、...、74M(其依次系连接至对应的内存总线761、762、...、76M)。双储存装置84亦可配置如图5的单一DMA控制器46所配置的方式相同。尤其每一双储存装置84可能包含两个开关86、88及两个暂时储存单元90、92,当暂时储存单元其中之一被耦接至一被选取的外围装置总线时,其允许另一暂时储存单元被耦接至对应的内存总线。
DMA控制器72亦可包含一多功能开关装置94。输入至多功能开关装置94的M个输入中的每一个输入为内部耦接任一N个外围装置数据路径781、782、...、78N(其依次分别连接至外围装置总线801、802、...、80N)。多功能开关装置94可包含任何适当的逻辑组件或是开关组件的组合,以允许任何输入被电性耦接至任一输出于一对一的关系下。当系统被配置成数量M等于数量N时,则多功能开关装置94的内部电路可被配置成每一输入相配一对应的输出,由此提供两倍数量M的同时数据传送阶段。当数量M不等于数量N时,则某些输入或输出在所设定的时间内将被留下而没有连接,并且可同时执行低于两倍数量M或N的数据传送阶段。
在另一实施例中,多功能开关装置94可能被从电路中完全移除,例如:当数量M等于数量N时,并且每一内存总线76仅存取单一外围装置总线80时。在此范例中,每一双储存装置84的输出将直接连接至对应的外围装置数据路径78。在其它实施例,当计算机系统设计成某些群组(group)的内存总线76仅存取某些群组的外围装置总线80时,则多功能开关装置94可被划分成为较小、较简单的开关装置。在此范例中,每一较小的开关装置仅控制那些被包含于一组对应群组的总线。然而就连接能力而言,为了在内存装置与外围装置间维持最大弹性,一单独多功能开关装置94被用以允许任何内存总线76与任何外围装置总线80通信。
每一双储存装置84允许一内存装置使用上述所描述的开关技术,在一个别的内存总线76一再地写入数据至两暂时储存单元90、92。此外,一电性耦接在多功能开关装置94内被建立,用以沿着一对应的外围装置总线80连接任一外围装置与双储存装置84的输出。在此方式中,比数量M或N少的数据封包在每一时间区间可被从任何内存总线同时传输至任何外围装置总线。
在另一实施例中,双储存装置84中的第二开关88可被移除,并且由多功能开关装置94中的对应电路所取代。在此观点中,从一内存总线相继而来的数据封包,在如果必要时可能较易被适用于不同外围装置总线。在另一实施例中,一个双储存装置84可被移至DMA控制器72的另一边,以直接连接至外围装置数据路径78,并且连接被搬移以直接连接至内存数据路经74的多功能开关装置94。其它电路结构用以提供DMA控制器72的暂时储存功能及开关切换功能亦可被考虑,其允许如本发明所描述的有效的数据传输且未脱离本发明的精神及范围。
以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它为脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在申请专利范围内。

Claims (16)

1.一种适用于主从计算机系统的直接内存存取系统,该直接内存存取系统包含:
一内存装置;
一外围装置;
一直接内存存取控制器,具有一第一及一第二数据路径;
一第一总线,连接该内存装置与该第一数据路径;以及
一第二总线,连接该外围装置与该第二数据路径;
其中该直接内存存取控制器系包含一第一及一第二暂时储存单元以及一第一及一第二开关,该第一开关提供一第一状态以电性耦接该第一暂时储存单元至该第一总线以及一第二状态以电性耦接该第二暂时储存单元至该第一总线,该第二开关提供一第一状态以电性耦接该第一暂时储存单元至该第二总线以及一第二状态以电性耦接该第二暂时储存单元至该第二总线。
2.如权利要求1所述的直接内存存取系统,其中该第一及该第二开关系用以使该第一暂时储存单元耦接至该第一及该第二总线其中的一,并使该第二暂时储存单元耦接至该第一及该第二总线其中的另一,其中该第一及该第二开关用以使该直接内存存取控制器可以从该内存装置读取一数据封包,并同时将另一数据封包写至该外围装置。
3.一主从计算机系统的一直接内存存取控制器,该直接内存存取控制器包含:
一第一数据路径,连接至一内存总线,该内存总线与至少一内存装置通信;
一第二数据路径,连接至一外围装置总线,该外围装置总线与至少一外围装置通信;以及
一传输数据装置,用以在该至少一内存装置其中的一与该至少一外围装置其中的一间传输数据,其中该传输数据装置包含在该至少一内存装置其中的一与该至少一外围装置其中的一间同时传送一第一部分的数据及接收一第二部分的数据,其中该传输数据装置包含:
复数个双储存装置,每一双储存装置分别连接至一个别内存总线,其中该每一双储存装置包含至少一第一暂时储存单元与一第二暂时储存单元及至少一第一开关与一第二开关;
其中该第一部份的数据的传送是从该第一数据路径读取该第一部份的数据至其中一第一暂时储存单元,再由该第一暂时储存单元传送至该第二数据路径;以及
其中该第二部份的数据的接收是从该第二数据路径读取该第二部份的数据至其中一第二暂时储存单元,再由该第二暂时储存单元传送至该第一数据路径。
4.如权利要求3所述的直接内存存取控制器,其中,在一读取程序期间,该传输数据装置传送该第一部分的数据给该外围装置总线,并且同时从该内存总线接收该第二部分的数据。
5.如权利要求3所述的直接内存存取控制器,其中在一第一时间区间期间,从该至少一内存装置其中的一读取该第一部份的数据至该第一暂时储存单元,在一第二时间区间期间,从该至少一内存装置其中的一读取该第二部份的数据至该第二暂时储存单元,其中该第二时间区间在该第一时间区间之后。
6.如权利要求5所述的直接内存存取控制器,其中在该第二时间区间期间,从该第一暂时储存单元传送该第一部份的数据至该至少一外围装置其中之一,在一第三时间区间期间,从该第二暂时储存单元传送该第二部份的数据至该至少一外围装置其中之一,其中该第三时间区间系在该第二时间区间之后。
7.如权利要求5所述的直接内存存取控制器,其中设定该第一开关的状态以电性耦接该内存总线至该第一及该第二暂时储存单元其中之一,设定该第二开关的状态以电性耦接该外围装置总线至该第一及该第二暂时储存单元其中之另一。
8.如权利要求3所述的直接内存存取控制器,还包含:
一第一组数据路径,连接复数个内存总线,每一内存总线与至少一内存装置通信,其中该第一组数据路径包含该第一数据路径;以及
一第二组数据路径,连接复数个外围装置总线,每一外围装置总线与至少一外围装置通信,其中该第二组数据路径包含该第二数据路径;
其中该传输数据装置同时在复数个内存装置与复数个外围装置之间传送数据。
9.如权利要求8所述的直接内存存取控制器,其中该传输数据装置还包含:
一多功能开关装置,从该每一双储存装置的一输出连接至该复数个外围装置总线。
10.一种传输数据方法,由一从属装置传输数据至另一从属装置,该传输数据方法包含:
从一第一总线读取一第一数据封包;
暂时储存该第一数据封包于一第一暂时储存单元;以及
将该第一数据封包从该第一暂时储存单元写至一第二总线,并且同时从该第一总线读取一第二数据封包。
11.如权利要求10所述的传输数据方法,还包含:
暂时储存该第二数据封包于一第二暂时储存单元;以及
将该第二数据封包从该第二暂时储存单元写至该第二总线,并且同时从该第一总线读取一第三数据封包。
12.如权利要求10所述的传输数据方法,还包含:
当耦接该第一总线至该第一及该第二暂时储存单元其中之一时,耦接该第二总线至该第一及该第二暂时储存单元其中之另一。
13.如权利要求12所述的传输数据方法,其中耦接该第一及该第二总线至该第一及该第二暂时储存单元还包含设定一第一及一第二开关的耦接状态。
14.如权利要求13所述的传输数据方法,还包含:
在一后续时间区间期间,反转该第一及该第二开关的耦接状态。
15.如权利要求14所述的传输数据方法,还包含:
监视该第一及该第二暂时储存单元的剩余容量以决定反转该第一及该第二开关的耦接状态的时间。
16.如权利要求14所述的传输数据方法,还包含:
监视一数据流的结束时间以决定反转该第一及该第二开关的耦接状态的时间。
CNB2005100832634A 2004-07-07 2005-07-07 主从系统中直接内存存取控制器及总线结构 Active CN100367258C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/886,401 2004-07-07
US10/886,401 US20060010260A1 (en) 2004-07-07 2004-07-07 Direct memory access (DMA) controller and bus structure in a master/slave system

Publications (2)

Publication Number Publication Date
CN1696917A CN1696917A (zh) 2005-11-16
CN100367258C true CN100367258C (zh) 2008-02-06

Family

ID=35349646

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100832634A Active CN100367258C (zh) 2004-07-07 2005-07-07 主从系统中直接内存存取控制器及总线结构

Country Status (3)

Country Link
US (1) US20060010260A1 (zh)
CN (1) CN100367258C (zh)
TW (1) TWI285815B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461183B2 (en) * 2004-08-03 2008-12-02 Lsi Corporation Method of processing a context for execution
JP2006185000A (ja) * 2004-12-27 2006-07-13 Hitachi Ltd ストレージ装置
US7509611B2 (en) * 2006-02-07 2009-03-24 International Business Machines Corporation Heuristic clustering of circuit elements in a circuit design
US7689758B2 (en) * 2007-07-12 2010-03-30 Atmel Corporation Dual bus matrix architecture for micro-controllers
US7739433B2 (en) * 2008-03-05 2010-06-15 Microchip Technology Incorporated Sharing bandwidth of a single port SRAM between at least one DMA peripheral and a CPU operating with a quadrature clock
US8225052B2 (en) 2009-06-03 2012-07-17 Micron Technology, Inc. Methods for controlling host memory access with memory devices and systems
TWI448900B (zh) * 2010-11-26 2014-08-11 Weltrend Semiconductor Inc 雙匯流排並行的運作架構
KR20120072211A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 메모리 매핑장치 및 이를 구비한 멀티프로세서 시스템온칩 플랫폼
CN110109858A (zh) * 2019-05-07 2019-08-09 苏州浪潮智能科技有限公司 总线架构、服务器、内存数据读写方法及可读存储介质
TWI722521B (zh) * 2019-08-02 2021-03-21 新唐科技股份有限公司 控制裝置及調整方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671443A (en) * 1995-02-21 1997-09-23 International Business Machines Corporation Direct memory access acceleration device for use in a data processing system
CN1232216A (zh) * 1997-12-22 1999-10-20 日本电气株式会社 能够通过有效地使用数据线提高生产能力的信息处理方法和信息处理装置
US6317799B1 (en) * 1997-12-15 2001-11-13 Intel Corporation Destination controlled remote DMA engine
US6411984B1 (en) * 1990-09-28 2002-06-25 Texas Instruments Incorporated Processor integrated circuit
US20030033454A1 (en) * 2001-02-08 2003-02-13 Walker Anthony Mark Direct memory access controller

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982672A (en) * 1996-10-18 1999-11-09 Samsung Electronics Co., Ltd. Simultaneous data transfer through read and write buffers of a DMA controller
US6108319A (en) * 1996-11-05 2000-08-22 Worldspace International Networks, Inc. Satellite payload processing system providing on-board rate alignment
US6178462B1 (en) * 1997-11-24 2001-01-23 International Business Machines Corporation Protocol for using a PCI interface for connecting networks
US6151654A (en) * 1997-12-24 2000-11-21 Intel Corporation Method and apparatus for encoded DMA acknowledges
US6032238A (en) * 1998-02-06 2000-02-29 Interantional Business Machines Corporation Overlapped DMA line transfers
US6163826A (en) * 1999-08-23 2000-12-19 Advanced Micro Devices, Inc. Method and apparatus for non-concurrent arbitration of multiple busses
US6658520B1 (en) * 2000-09-26 2003-12-02 Intel Corporation Method and system for keeping two independent busses coherent following a direct memory access
US6883132B1 (en) * 2000-09-29 2005-04-19 Rockwell Automation Technologies, Inc. Programmable error checking value circuit and method
US7072996B2 (en) * 2001-06-13 2006-07-04 Corrent Corporation System and method of transferring data between a processing engine and a plurality of bus types using an arbiter
US7145903B2 (en) * 2001-09-06 2006-12-05 Meshnetworks, Inc. Multi-master bus architecture for system-on-chip designs
AU2003253826A1 (en) * 2002-07-08 2004-01-23 Globespanvirata Incorporated Dma scheduling mechanism
US20050213925A1 (en) * 2004-03-23 2005-09-29 Imperative Networks Ltd. Fiber channel switching system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6411984B1 (en) * 1990-09-28 2002-06-25 Texas Instruments Incorporated Processor integrated circuit
US5671443A (en) * 1995-02-21 1997-09-23 International Business Machines Corporation Direct memory access acceleration device for use in a data processing system
US6317799B1 (en) * 1997-12-15 2001-11-13 Intel Corporation Destination controlled remote DMA engine
CN1232216A (zh) * 1997-12-22 1999-10-20 日本电气株式会社 能够通过有效地使用数据线提高生产能力的信息处理方法和信息处理装置
US20030033454A1 (en) * 2001-02-08 2003-02-13 Walker Anthony Mark Direct memory access controller

Also Published As

Publication number Publication date
US20060010260A1 (en) 2006-01-12
TW200604828A (en) 2006-02-01
CN1696917A (zh) 2005-11-16
TWI285815B (en) 2007-08-21

Similar Documents

Publication Publication Date Title
CN100367258C (zh) 主从系统中直接内存存取控制器及总线结构
CN100468378C (zh) Spi设备通信电路
CN1909559B (zh) 基于快速外围组件互连的接口板及其切换主控板的方法
CN101398801B (zh) 扩展内部集成电路总线的方法及装置
CN101282301B (zh) 双冗余can总线控制器及其报文处理方法
CN85109274A (zh) 设备控制器的接口装置
KR101699784B1 (ko) 버스 시스템 및 그것의 동작 방법
CN115941102B (zh) 一种采用spi连接mcu和fpga的控制器间同步通信的方法
CN103814367A (zh) 具有通过用于串行芯片间数据传输的物理传输路径的逻辑多通道通信的通信装置
CN101009542B (zh) 一种数据网络节点设备端口的扩展装置
CN101471833A (zh) 一种数据处理方法和装置
US5388220A (en) Parallel processing system and data transfer method which reduces bus contention by use of data relays having plurality of buffers
CN104657297A (zh) 计算设备扩展系统及扩展方法
KR101074611B1 (ko) 인터페이스 모듈을 구비한 통신 모듈 어셈블리와 그에관련한 인터페이스 모듈
CN101170780B (zh) 双模终端中防止两个无线模块之间电流倒灌的方法
EP0660239A1 (en) Data transfer between computing elements
CA2063317A1 (en) Method of loading down program in remote communication devices via spare lines and communication network using the method
CN101334763B (zh) 主机与设备之间的数据传送方法
CN100435522C (zh) 一种修改总线的方法和一种总线
KR20060010383A (ko) 메인 제어부와 부 제어부로 구성된 제어 시스템 및 버스연결 방법
US7032061B2 (en) Multimaster bus system
US7716392B2 (en) Computer system having an I/O module directly connected to a main storage for DMA transfer
CN208888804U (zh) 一种多处理器电子设备
Taube et al. Comparison of CAN gateway modules for automotive and industrial control applications
JPS6146550A (ja) バス間結合装置

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