CN113360432A - 数据传输系统 - Google Patents
数据传输系统 Download PDFInfo
- Publication number
- CN113360432A CN113360432A CN202010139205.3A CN202010139205A CN113360432A CN 113360432 A CN113360432 A CN 113360432A CN 202010139205 A CN202010139205 A CN 202010139205A CN 113360432 A CN113360432 A CN 113360432A
- Authority
- CN
- China
- Prior art keywords
- control module
- channel control
- memory
- data
- data transmission
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 165
- 230000015654 memory Effects 0.000 claims abstract description 181
- 239000000872 buffer Substances 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 101100042610 Arabidopsis thaliana SIGB gene Proteins 0.000 description 29
- 101100294408 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MOT2 gene Proteins 0.000 description 15
- 101150117326 sigA gene Proteins 0.000 description 15
- 101100421503 Arabidopsis thaliana SIGA gene Proteins 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 7
- 101100042613 Arabidopsis thaliana SIGC gene Proteins 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
- Radio Relay Systems (AREA)
Abstract
数据传输系统包含第一内存、第二内存、第三内存及内存控制器。内存控制器包含第一通道控制模块及第二通道控制模块。第一通道控制模块耦接于第二通道控制模块、第一内存及第二内存。第一通道控制模块在第一内存及第二内存之间传输第一组数据,并在完成第一组数据的传输后,传送第一交替信号至第二通道控制模块。第二通道控制模块耦接于第一内存及第三内存。第二通道控制模块在收到第一交替信号后,在第一内存及第三内存之间传输第二组数据。
Description
技术领域
本发明是关于一种数据传输系统,特别是指一种能够利用多个通道控制模块联合工作的数据传输系统。
背景技术
在电子系统中,直接内存访问(Direct Memory Access,DMA)控制器常被用来协助中央处理器执行内存之间的数据搬运工作,以免中央处理器为转移大量数据而无暇处理系统中的其他运算,导致系统指令周期变慢。直接内存访问控制器可以通过通道控制模块在不同的内存之间传输数据。举例来说,直接内存访问控制器可以指定数据传输的来源地址及目标地址,而通道控制模块便会据此将储存在来源地址的数据传输至目标地址。
在现有技术中,通道控制模块可以独立执行分散(scatter)操作或聚集(gather)操作来完成单一个内存区块(block)数据的传输。也就是说,通道控制模块可以将不同来源地址的数据依序储存在同一内存区块的连续地址中,或是将储存在连续地址中的多组数据分别储存至不同的目标地址。此外,通道控制模块也可以利用链接表(linked list)来执行多个内存区块数据的传输。举例来说,通道控制模块可以根据第一个链接表取得第一内存区块数据的来源地址及目标地址,并在第一内存区块数据传输完毕后,根据第一链接表中的指标取得第二链接表,接着再根据第二链接表中的信息完成第二内存区块数据的传输,并依此类推。然而,若传输数据量较大或传输方式较复杂,则系统中就必须储存较多的链接表。此外,倘若传输过程须存取多个不同的内存,则须与不同的内存重复进行交握程序,如此也将使得传输效率降低。
发明内容
本发明的一个实施例提供一种数据传输系统。数据传输系统包含第一内存、第二内存、第三内存及内存控制器。
内存控制器包含第一通道控制模块及第二通道控制模块。第一通道控制模块耦接于第一内存及第二内存。第一通道控制模块在第一内存及第二内存之间传输第一组数据,并在完成第一组数据的传输后,传送第一交替信号。第二通道控制模块耦接于第一通道控制模块、第一内存及第三内存。第二通道控制模块在收到第一交替信号后,在第一内存及第三内存之间传输第二组数据。
附图说明
为更清楚地理解本申请的上述目的、特征、优点及实施例,请参考附图及如下附图说明:
图1是本发明一个实施例的数据传输系统的示意图。
图2是本发明另一个实施例的数据传输系统的示意图。
图3是图1的数据传输系统的另一个使用情境图。
图4是图1的数据传输系统的另一个使用情境图。
图5是本发明另一个实施例的数据传输系统的示意图
图6是图5的数据传输系统的另一个使用情境图。
符号说明:
100、200、300:数据传输系统
110A、110B、110C、310A、310B、310C、310D:内存
120、220、320:内存控制器
122、124、222、224、322、324、326:通道控制模块
D1A、D2A、D3A、D1B、D2B、D3B、D1C、D2C、D3C:数据组
B1、B2、B1’、B2’、B3’:内存区块
SIG1、SIG2、SIG3:交替信号
REGS1、REGS2:起始旗标缓存器
REGF1、REGF2:完成旗标缓存器
IT1、IT2、IT3:起始信号端
FT1、FT2、FT3:完成信号端
LL1、LL2:链接表
N1、N2:节点
MUX1、MUX2、MUX3:多任务器
330:逻辑控制器
REGU1、REGU2、REGU3:联合工作缓存器
REGO1、REGO2、REGO3:传输顺序缓存器
具体实施方式
图1是本发明一个实施例的数据传输系统100的示意图。数据传输系统100包含第一内存110A、第二内存110B、第三内存110C及内存控制器120。内存控制器120可以例如是系统中的直接内存访问控制器,并可包含第一通道控制模块122及第二通道控制模块124。
在有些实施例中,第一通道控制模块122可耦接于第一内存110A、第二内存110B及第三内存110C,并且可以存取第一内存110A、第二内存110B及第三内存110C中的数据。相似地,第二通道控制模块124也可耦接于第一内存110A、第二内存110B及第三内存110C,并且可以存取第一内存110A、第二内存110B及第三内存110C中的数据。
此外,第一通道控制模块122可耦接于第二通道控制模块124,因此第一通道控制模块122与第二通道控制模块124可以互相传送信息以得知各自传输数据的情况并进行联合工作。
举例来说,第一通道控制模块122可在第一内存110A及第二内存110B之间传输第一组数据D1A,并在完成第一组数据D1A的传输后,传送第一交替信号SIG1至第二通道控制模块124。第二通道控制模块124可以在收到第一交替信号SIG1之后,在第一内存110A及第三内存110C之间传输第二组数据D2A。在图1的实施例中,当第二通道控制模块124完成第二组数据D2A的传输后,还可传送第二交替信号SIG2至第一通道控制模块122,而第一通道控制模块122在收到第二交替信号SIG2后,便可在第一内存110A及第二内存110B之间传输第三组数据D3A。如此一来,第一通道控制模块122及第二通道控制模块124就可以轮流在第一内存110A及第二内存110B之间传输数据以及在第一内存110A及第三内存110C之间传输数据。
举例来说,在图1中,第一通道控制模块122可将第一内存110A中的第一组数据D1A传送至第二内存110B。接着,第二通道控制模块124在收到第一交替信号SIG1后,可将第一内存110A中的第二组数据D2A传送至第三内存110C,而当第一通道控制模块122收到第二交替信号SIG2后,便可将第一内存110A中的第三组数据D3A传送至第二内存110B。
此外,在图1中,第一组数据D1A及第三组数据D3A可以是对应到第二内存110B中内存区块(block)B1。也就是说,在图1中,数据传输系统100可以通过第一通道控制模块122执行分散(scatter)指令以完成内存区块B1的数据传输,并可通过第二通道控制模块124执行分散指令以完成内存区块B2的数据传输。
在此情况下,由于每次第一通道控制模块122完成第一内存110A及第二内存110B之间的一组数据传输时,就会与第一内存110A及/或第二内存110B进行硬件交握(hardwarehandshaking),因此在有些实施例中,第一通道控制模块122可以在完成硬件交握之后,判断第一组数据D1A已完成传输,并对应的传送第一交替信号SIG1至第二通道控制模块124,以便进行第二组数据D2A的传输。
此外,由于第一通道控制模块122及第二通道控制模块124可以独立操作,因此在有些实施例中,第一组数据D1A的长度可与第二组数据D2A的长度相异。举例来说,在图1中,第一组数据D1A可以包含储存在第一内存110A中地址0x0000至0x0003的共四笔数据,第二组数据D2A可以包含储存在第一内存110A中地址0x0004至0x0005的共两笔数据,而第三组数据D3A则可以包含储存在第一内存110A中地址0x0006至0x009A的共四笔数据。也就是说,第一通道控制模块122及第二通道控制模块124所接受到的分散指令可具有不同的参数,而两者可以轮流独立运作。
此外,在有些实施例中,在第二内存110B中,第一组数据D1A、第三组数据D3A及后续自第一内存110A取得的数据可以储存在连续的地址中,或相隔固定的地址区间。相似地,在第三内存110C中,第二组数据D2A及后续自第一内存110A取得的数据可以储存在连续的地址中,或相隔固定的地址区间。
在图1的实施例中,第一通道控制模块122可包含第一起始旗标缓存器REGS1及第一完成旗标缓存器REGF1,第二通道控制模块124可包含第二起始旗标缓存器REGS2及第二完成旗标缓存器REGF2。此外,第一完成旗标缓存器REGF1可与第二起始旗标缓存器REGS2互相耦接且同步,而第二完成旗标缓存器REGF2可与第一起始旗标缓存器REGS1互相耦接且同步。在此情况下,当第一通道控制模块122完成第一组数据D1A的传输后,第一通道控制模块122便可以更新第一完成旗标缓存器REGF1的值,并据此传送第一交替信号SIG1至第二通道控制模块124以对应更新第二起始旗标缓存器REGS2的值。在有些实施例中,当第二通道控制模块124开始传输第二组数据D2A时,第二通道控制模块124还可以更新第二起始旗标缓存器REGS2的值,同时也更新第一完成旗标缓存器REGF1的值,以便后续重复操作。相似地,在第二通道控制模块124完成第二组数据D2A的传输后,第二通道控制模块124便会更新第二完成旗标缓存器REGF2的值,并据此传送第二交替信号SIG2至第一通道控制模块122以对应更新第一起始旗标缓存器REGS1的值。
在图1中,数据传输系统100是利用更新旗标缓存器的方式来传送第一交替信号SIG1及第二交替信号SIG2,然而在有些实施例中,数据传输系统100也可以利用交握的方式来传送第一交替信号SIG1及第二交替信号SIG2。
图2是本发明一个实施例的数据传输系统200的示意图。在图2中,数据传输系统200的内存控制器220可包含第一通道控制模块222及第二通道控制模块224。第一通道控制模块222可包含第一起始信号端IT1及第一完成信号端FT1,而第二通道控制模块224可包含第二起始信号端IT2及第二完成信号端FT2。第一完成信号端FT1与第二起始信号端IT2可互相耦接,而第二完成信号端FT2可与第一起始信号端IT1互相耦接。
在有些实施例中,第一通道控制模块222在完成第一组数据D1A的传输后,便可自第一完成信号端FT1输出第一交替信号SIG1,以使第二通道控制模块224进行第二组数据D2A的传输。而在第二通道控制模块224完成第二组数据D2A的传输后,第二通道控制模块224便可自第二完成信号端FT2输出第二交替信号SIG2,以使第一通道控制模块222能够继续传输第三组数据D3A。
在有些实施例中,第二通道控制模块224在完成第二组数据D2A的传输后,可以回传确认信号至第一通道控制模块222,使第一通道控制模块222变换第一完成信号端FT1及第二起始信号端IT2的电位,以便第一通道控制模块222能够在之后继续传送交替信号给第二通道控制模块224。相似地,第一通道控制模块222在完成数据传输后,也可以回传确认信号至第二通道控制模块224,使第二通道控制模块224变换第二完成信号端FT2及第一起始信号端IT1的电位,以便之后能够继续传送交替信号给第一通道控制模块222。
此外,在有些实施例中,第一交替信号SIG1及第二交替信号SIG2也可以设计成脉冲信号,如此一来,第一通道控制模块222及第二通道控制模块224之间就无须另外通过确认信号来进行交握,而仍可确保联合工作能够持续运作。
在图1的实施例中,第一通道控制模块122是根据分散指令来传输第一组数据D1A、第三组数据D3A及后续的数据,而第二通道控制模块124也是根据分散指令来传输第二组数据D2A及后续的数据。然而,在有些实施例中,第一通道控制模块122及第二通道控制模块124也可以执行聚集(gather)指令来传输数据。
图3是数据传输系统100的另一个使用情境图。在图3中,第一通道控制模块122可将第二内存110B中的第一组数据D1A传送至第一内存110A,而第二通道控制模块124在收到第一交替信号SIG1后,可将第三内存110C中的第二组数据D2A传送至第一内存D1A。接着,第一通道控制模块122在接收到第二交替信号124后,便可将第二内存110B中的第三组数据D3A传送至第一内存D1A。
也就是说,在图3中,数据传输系统100可以通过第一通道控制模块122执行聚集指令以完成内存区块B1的数据传输,并可通过第二通道控制模块124执行聚集指令以完成内存区块B2的数据传输。如此一来,就可以将分散在第二内存110B及第三内存110C中的数据储存到第一内存110A中连续的地址。
在图1及图3中,第一通道控制模块122及第二通道控制模块124是分别执行单一个内存区块的传输,然而在有些实施例中,第一通道控制模块122及第二通道控制模块124也可以分别对多个内存区块进行传输。
图4是数据传输系统100的另一个使用情境图。在图4中,第一通道控制模块122会完整传输一个内存区块的数据之后才发送第一交替信号SIG1,而第二通道控制模块124也在接到第一交替信号SIG1之后,完整传输一个内存区块的数据之后才发送第二交替信号SIG2。也就是说,在图4中,第一组数据D1B、第二组数据D2B及第三组数据D3B可以分别对应到完整的三个内存区块B1’、B2’及B3’的数据。
在此情况下,第一通道控制模块122可以利用链接表(linked list)的方式来对多个内存区块进行传输。举例来说,数据传输系统100可将多个内存区块的信息储存在链接表LL1的多个储存节点中,亦即每个储存节点可以包含所要传输的内存区块的来源地址以及目标地址。再者,每个储存节点中还会储存下一个储存节点的位置。在此情况下,第一通道控制模块122可以自链接表LL1的第一储存节点N1取得第一组数据D1B所对应的传输地址,并自第一储存节点N1取得链接表中的第二储存节点N2。接着,当第一通道控制模块122接收到第二交替信号SIG2时,便可自第二储存节点N2取得第三组数据D3B所对应的传输地址。如此一来,第一通道控制模块122就可以依序取得分散在各处的多个内存区块数据,以完成多个内存区块的数据传输。相似地,数据传输系统100也可包含链接表LL2以使第二通道控制模块124能够根据链接表LL2取得所需多个内存区块的位置。
一般来说,当第一通道控制模块122及第二通道控制模块124进行多区块传输时,每当有一个内存区块的数据传输完成时,便会产生区块传输指示信号。在此情况下,第一通道控制模块122便可以根据区块传输指示信号来判断第一组数据D1B已完成传输,并据此发出第一交替信号SIG1以通知第二通道控制模块124。相似地,第二通道控制模块124也可以根据区块传输指示信号来判断第二组数据D2B已完成传输,并据此发出第二交替信号SIG2以通知第一通道控制模块122,并依此类推。
在有些实施例中,数据传输系统100除了可以利用链接表来记录多个内存区块的所在地址,也可以利用连续地址(contiguous)或自动更新(auto-reload)的机制来进行多个内存区块的传输。举例来说,在有些实施例中,第三组数据D3B可以储存在第二内存110B中第一组数据D1B所在的下一地址,因此第一通道控制模块122在传送第一组数据D1B之后,只要对应递增地址就可以在第二内存110B中找到第三组数据D3B的储存地址,并依此类推。如此一来,数据传输系统100就可以利用连续地址的机制完成多个内存区块的数据传输。
或者,在有些实施例中,第二内存110B中的数据会持续更新,因此第一通道控制模块122可以根据相同的地址在不同的时段依序自第二内存110B中取得第一组数据D1B及第三组数据D3B。如此一来,数据传输系统100就可以利用自动更新的机制完成多个内存区块的数据传输。
如此一来,通过第一通道控制模块122及第二通道控制模块124的联合工作,数据传输系统100就可以简化不同内存之间的数据传输,并提升数据传输的效率。
此外,由于第一通道控制模块122及第二通道控制模块124是独立运作的,因此两者可能会根据不同的机制来进行多内存区块的传输。举例来说,第一通道控制模块122可以根据链接表来进行多内存区块的传输,而第二通道控制模块124则可以根据连续地址或自动更新的机制来进行多个内存区块的传输。相较之下,在现有技术中,倘若只通过单一个通道控制模块来完成相同的多内存区块传输,就必须完全通过链接表来记录所有内存区块的地址,而无法部分使用链接表,部分使用连续地址或自动更新的机制。也就是说,通过第一通道控制模块122及第二通道控制模块124的联合工作,除了可以简化不同内存之间的数据传输,同时也可以减少链接表中的节点数量,进而减少数据传输系统100所需的储存空间,并可增进数据传输的效率。
在有些实施例中,数据传输系统还可包含更多的通道控制模块来进行联合工作,以使不同内存之间的数据传输能够更加弹性及/或有效率。图5是本发明另一个实施例的数据传输系统300的示意图,数据传输系统300可包含第一内存310A、第二内存310B、第三内存310C及第四内存310D以及内存控制器320,内存控制器320可包含第一通道控制模块322、第二通道控制模块324及第三通道控制模块326。第三通道控制模块326可耦接于第一内存310A、第二内存310B、第三内存310C及第四内存310D,并且可以存取第一内存310A、第二内存310B、第三内存310C及第四内存310D中的数据。此外,第三通道控制模块326可耦接于第一通道控制模块322及第二通道控制模块324,因此可以与其他通道控制模块互相取得目前数据传输的状态,而得以与第一通道控制模块322及第二通道控制模块324进行联合工作。
在图5中,第一通道控制模块322可以在第一内存310A及第二内存310B之间进行第一组数据D1C的传输后,发送第一交替信号SIG1至第二通道控制模块324,使得第二通道控制模块324接着在第一内存310A及第三内存310C之间进行第二组数据D2C的传输。第二通道控制模块324在完成第二组数据D2C的传输后,便可传送第二交替信号SIG2至第三通道控制模块326。接着,第三通道控制模块326在收到第二交替信号SIG2后,可在第一内存310A及第四内存310D之间传输第三组数据D3C,并在第三组数据D3C传输完成后,发送第三交替信号SIG3至第一通道控制模块322,而第一通道控制模块322便可进行下一组数据的传输。如此一来,数据传输系统300就可以同时通过第一通道控制模块322、第二通道控制模块324及第三通道控制模块326来进行联合工作以完成数据传输。
在有些实施例中,数据传输系统300可以选择部分的通道控制模块加入联合工作,例如仅选择第二通道控制模块324及第三通道控制模块326来加入联合工作,而不使第一通道控制模块322加入联合工作。为使数据传输系统300能够较有弹性地选择所需的通道控制模块来加入联合工作,在图5中,数据传输系统300可包含第一联合工作缓存器REGU1、第二联合工作缓存器REGU2及第三联合工作缓存器REGU3以及逻辑控制电路330。
逻辑控制电路330可以根据第一联合工作缓存器REGU1的数值判断第一通道控制模块322是否加入联合工作,根据第二联合工作缓存器REGU2的数值判断第二通道控制模块324是否加入联合工作,并根据第三联合工作缓存器REGU3的数值判断第三通道控制模块326是否加入联合工作。
在图5中,第一通道控制模块322可包含第一起始信号端IT1及第一完成信号端FT1,第二通道控制模块324可包含第二起始信号端IT2及第二完成信号端FT2,而第三通道控制模块326可包含第三起始信号端IT3及第三完成信号端FT3。此外,数据传输系统300可包含多任务器MUX1、MUX2及MUX3。
多任务器MUX1的第一输入端可耦接于第二完成信号端FT2,多任务器MUX1的第二输入端可耦接于第三完成信号端FT3,而多任务器MUX1的输出端可耦接于第一起始信号端IT1。多任务器MUX2的第一输入端可耦接于第一完成信号端FT1,多任务器MUX2的第二输入端可耦接于第三完成信号端FT3,而多任务器MUX2的输出端可耦接于第二起始信号端IT2。多任务器MUX3的第一输入端可耦接于第一完成信号端FT1,多任务器MUX3的第二输入端可耦接于第二完成信号端FT2,而多任务器MUX3的输出端可耦接于第三起始信号端IT3。
在此情况下,逻辑控制电路330可以根据第一联合工作缓存器REGU1、第二联合工作缓存器REGU2及第三联合工作缓存器REGU3的数值来控制多任务器MUX1、MUX2及MUX3。举例来说,当第一联合工作缓存器REGU1、第二联合工作缓存器REGU2及第三联合工作缓存器REGU3的数值都为1,表示第一通道控制模块322、第二通道控制模块324及第三通道控制模块326都应加入联合工作,此时多任务器MUX2会将第一完成信号端FT1耦接至第二起始信号端IT2,多任务器MUX3会将第二完成信号端FT2耦接至第三起始信号端IT3,而多任务器MUX1会将第三完成信号端FT3耦接至第一起始信号端IT1。如此一来,第一通道控制模块322完成数据传输后所产生的第一交替信号SIG1就会传送至第二通道控制模块324,第二通道控制模块324完成数据传输后所产生的第二交替信号SIG2就会传送至第三通道控制模块326,而第三通道控制模块326完成数据传输后所产生的第三交替信号SIG3就会传送至第一通道控制模块322。因此第一通道控制模块322、第二通道控制模块324及第三通道控制模块326可以依序轮流进行数据传输来完成联合工作。
图6是数据传输系统300的另一个使用情境图。在图6中,第一联合工作缓存器REGU1及第三联合工作缓存器REGU3的数值为1,而第二联合工作缓存器REGU2的数值为0。在此情况下,多任务器MUX3会将第一完成信号端FT1耦接至第三起始信号端IT3,而多任务器MUX1会将第三完成信号端FT3耦接至第一起始信号端IT1。如此一来,第一通道控制模块322完成数据传输后所产生的第一交替信号SIG1就会传送至第三通道控制模块326,而第二通道控制模块324则会忽略第一交替信号SIG1,接着,第三通道控制模块326完成数据传输后所产生的第二交替信号SIG2则会传送至第一通道控制模块322。因此第一通道控制模块322及第三通道控制模块326可以依序轮流进行数据传输来完成联合工作,而第二通道控制模块324则不会加入联合工作。
此外,在有些实施例中,数据传输系统300可以固定根据第一通道控制模块322、第二通道控制模块324及第三通道控制模块326的顺序来轮流进行数据传输,然而,在有些实施例中,数据传输系统300也可以设定第一通道控制模块322、第二通道控制模块324及第三通道控制模块326传输数据的顺序。例如使第二通道控制模块324先进行数据传输,接着使第三通道控制模块326进行数据传输,最后再使第一通道控制模块322进行数据传输。
在图5及图6的实施例中,数据传输系统300还可包含第一传输顺序缓存器REGO1、第二传输顺序缓存器REGO2及第三传输顺序缓存器REGO3。在此情况下,第一通道控制模块322可根据第一传输顺序缓存器REGO1的数值判断第一通道控制模块322是否具有传输优先权,第二通道控制模块324可根据第二传输顺序缓存器REGO2的数值判断第二通道控制模块324是否具有传输优先权,而第三通道控制模块326可根据第三传输顺序缓存器REGO3的数值判断第三通道控制模块326是否具有传输优先权。在有些实施例中,在联合工作初始时,每个通道控制模块322、324及326会根据对应的传输顺序缓存器REGO1、REGO2及REGO3判断自己是否有传输优先权,有传输优先权的通道控制模块可开始进行数据传输,没有传输优先权者则会等待前一个通道控制模块传送交替信号之后才进行数据传输。如此一来,通过在第一传输顺序缓存器REGO1、第二传输顺序缓存器REGO2及第三传输顺序缓存器REGO3设定对应的数值,就可以设定第一通道控制模块322、第二通道控制模块324及第三通道控制模块326传输数据的顺序。
如此一来,数据传输系统300就可以利用通道控制模块322、324及326来进行联合工作以完成在不同的内存之间的分散操作、聚集操作及多内存区块的传输操作。此外,数据传输系统300还可以通过联合工作缓存器REGU1、REGU2及REGU3来选择需加入联合工作的通道控制模块,并通过传输顺序缓存器REGO1、REGO2及REGO3来调整通道控制模块传输数据的顺序,因此能够更有弹性的进行数据传输。此外,在有些实施例中,数据传输系统300还可包含更多的通道控制模块来加入联合工作。
综上所述,本发明的实施例所提供的数据传输系统可以包含多个通道控制模块来进行联合工作,因此可以简化不同内存之间的数据传输,并提升数据传输的效率。此外,由于数据传输系统中的每一个通道控制模块都可独立操作,因此加入联合工作的通道控制模块可以根据不同的多内存区块传输机制,例如链接表、自动更新及连续地址等机制来进行多内存区块的传输。如此一来,就可以增加系统的弹性,也可以减少链接表所需的节点数量,进而减少数据传输系统所需的储存空间,增进数据传输的效率。
以上所述仅为本发明的较佳实施例,凡根据本发明申请保护范围所做的等同变化与调整,都应属于本发明的保护范围。
Claims (10)
1.一种数据传输系统,其特征在于,所述数据传输系统包含:
第一内存;
第二内存;
第三内存;及
内存控制器,包含:
第一通道控制模块,耦接于所述第一内存及所述第二内存,用以在所述第一内存及所述第二内存之间传输第一组数据,及在完成所述第一组数据的传输后,传送第一交替信号;及
第二通道控制模块,耦接于所述第一通道控制模块、所述第一内存及所述第三内存,用以在收到所述第一交替信号后,在所述第一内存及所述第三内存之间传输一第二组数据。
2.如权利要求1所述的数据传输系统,其特征在于,
所述第二通道控制模块还用以:在完成所述第二组数据的传输后,传送第二交替信号至所述第一通道控制模块;及
所述第一通道控制模块还用以:在收到所述第二交替信号后,在所述第一内存及所述第二内存之间传输第三组数据。
3.如权利要求2所述的数据传输系统,其特征在于,
所述第一通道控制模块系将所述第一内存中的所述第一组数据传送至所述第二内存;及
所述第二通道控制模块在收到所述第一交替信号后,将所述第一内存中的所述第二组数据传送至所述第三内存。
4.如权利要求2所述的数据传输系统,其特征在于,
所述第一通道控制模块将所述第二内存中的所述第一组数据传送至所述第一内存;及
所述第二通道控制模块在收到所述第一交替信号后,将所述第三内存中的所述第二组数据传送至所述第一内存。
5.如权利要求2所述的数据传输系统,其特征在于,
所述第一组数据是对应于完整区块的数据;
所述第三组数据是对应于完整区块的数据;
所述第一通道控制模块还用以根据区块传输指示信号判断所述第一组数据已完成传输;
所述数据传输系统还包含链接表,包含多个储存节点;及
所述第一通道控制模块还用以:
自所述链接表中的第一储存节点取得所述第一组数据所对应的传输地址;
自所述第一储存节点取得所述链接表中的第二储存节点;及
自所述第二储存节点取得所述第三组数据所对应的传输地址。
6.如权利要求2所述的数据传输系统,其特征在于,
所述第一通道控制模块包含第一起始旗标缓存器及第一完成旗标缓存器;
所述第二通道控制模块包含第二起始旗标缓存器及第二完成旗标缓存器;
所述第一完成旗标缓存器与所述第二起始旗标缓存器互相耦接且同步;及
所述第二完成旗标缓存器与所述第一起始旗标缓存器互相耦接且同步。
7.如权利要求2所述的数据传输系统,其特征在于,
所述第一通道控制模块包含第一起始信号端及第一完成信号端;
所述第二通道控制模块包含第二起始信号端及第二完成信号端;
所述第一完成信号端与所述第二起始信号端互相耦接;及
所述第二完成信号端与所述第一起始信号端互相耦接。
8.如权利要求1所述的数据传输系统,其特征在于,所述数据传输系统还包含:
第四内存;及
第三通道控制模块,耦接于所述第二通道控制模块、所述第一内存及所述第四内存;
其中:
所述第二通道控制模块还用以:在完成所述第二组数据的传输后,传送第二交替信号至所述第三通道控制模块;
所述第三通道控制模块用以:在收到所述第二交替信号后,在所述第一内存及所述第四内存之间传输第三组数据。
9.如权利要求8所述的数据传输系统,还包含:
第一联合工作缓存器;
第二联合工作缓存器;
第三联合工作缓存器;及
逻辑控制电路,用以:根据所述第一联合工作缓存器的数值判断所述第一通道控制模块是否加入联合工作,根据所述第二联合工作缓存器的数值判断所述第二通道控制模块是否加入联合工作,及根据所述第三联合工作缓存器的数值判断所述第三通道控制模块是否加入联合工作。
10.如权利要求9所述的数据传输系统,其特征在于,所述数据传输系统还包含:
第传输顺序缓存器;
第二传输顺序缓存器;及
第三传输顺序缓存器;
其中:所述第一通道控制模块是根据所述第一传输顺序缓存器的数值判断所述第一通道控制模块是否具有传输优先权,所述第二通道控制模块是根据所述第二传输顺序缓存器的数值判断所述第二通道控制模块是否具有所述传输优先权,及所述第三通道控制模块是根据所述第三传输顺序缓存器的数值判断所述第三通道控制模块是否具有所述传输优先权。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139205.3A CN113360432B (zh) | 2020-03-03 | 2020-03-03 | 数据传输系统 |
TW109109181A TWI798540B (zh) | 2020-03-03 | 2020-03-19 | 資料傳輸系統 |
US17/185,842 US11397581B2 (en) | 2020-03-03 | 2021-02-25 | Data transmission system capable of perform union task with a plurality of channel control modules |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139205.3A CN113360432B (zh) | 2020-03-03 | 2020-03-03 | 数据传输系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360432A true CN113360432A (zh) | 2021-09-07 |
CN113360432B CN113360432B (zh) | 2024-03-12 |
Family
ID=77523294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010139205.3A Active CN113360432B (zh) | 2020-03-03 | 2020-03-03 | 数据传输系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11397581B2 (zh) |
CN (1) | CN113360432B (zh) |
TW (1) | TWI798540B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06333381A (ja) * | 1993-05-25 | 1994-12-02 | Matsushita Electric Ind Co Ltd | ディジタル信号処理装置 |
US6018778A (en) * | 1996-05-03 | 2000-01-25 | Netcell Corporation | Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory |
US20020001214A1 (en) * | 2000-06-30 | 2002-01-03 | Samsung Electronics Co., Ltd | Two channel memory system having shared control and address bus and memory modules used therefor |
CN100580639C (zh) * | 2002-08-29 | 2010-01-13 | 米克伦技术公司 | 用于控制对具有存储器集线器体系结构的存储模块的存储器存取的方法和系统 |
US20140169112A1 (en) * | 2012-12-13 | 2014-06-19 | SK Hynix Inc. | Semiconductor memory system and operating method thereof |
CN204993390U (zh) * | 2015-10-07 | 2016-01-20 | 杭州锐达数字技术有限公司 | 用于数据采集器的双传输系统 |
CN105842563A (zh) * | 2016-04-27 | 2016-08-10 | 南京大全自动化科技有限公司 | 一种适用于馈线终端装置电气量的快速采集方法 |
CN105934747A (zh) * | 2013-11-07 | 2016-09-07 | 奈特力斯股份有限公司 | 混合内存模块以及操作混合内存模块的系统和方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5388237A (en) | 1991-12-30 | 1995-02-07 | Sun Microsystems, Inc. | Method of and apparatus for interleaving multiple-channel DMA operations |
US8156259B2 (en) | 2005-07-21 | 2012-04-10 | Elliptic Technologies Inc. | Memory data transfer method and system |
JP2007079958A (ja) * | 2005-09-14 | 2007-03-29 | Hitachi Ltd | 記憶制御装置、データ処理方法、及びコンピュータプログラム |
US8271648B2 (en) * | 2007-04-03 | 2012-09-18 | Cinedigm Digital Cinema Corp. | Method and apparatus for media duplication |
US8341459B2 (en) * | 2007-08-01 | 2012-12-25 | Brocade Communications Systems, Inc. | Data migration without interrupting host access and with data lock for write access requests such that held write access requests do not expire |
US7840186B2 (en) * | 2007-09-25 | 2010-11-23 | Motorola Mobility, Inc. | Wireless SATA/SAS data transfer system |
US8176252B1 (en) | 2007-11-23 | 2012-05-08 | Pmc-Sierra Us, Inc. | DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables |
TWI370361B (en) * | 2008-08-21 | 2012-08-11 | Ili Technology Corp | Memory access controlling apparatus and control method thereof |
US8825973B2 (en) * | 2012-01-17 | 2014-09-02 | International Business Machines Corporation | Caching source blocks of data for target blocks of data |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
WO2018137217A1 (zh) * | 2017-01-25 | 2018-08-02 | 华为技术有限公司 | 一种数据处理的系统、方法及对应装置 |
US11106607B1 (en) * | 2020-03-31 | 2021-08-31 | Dell Products L.P. | NUMA-aware storage system |
-
2020
- 2020-03-03 CN CN202010139205.3A patent/CN113360432B/zh active Active
- 2020-03-19 TW TW109109181A patent/TWI798540B/zh active
-
2021
- 2021-02-25 US US17/185,842 patent/US11397581B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06333381A (ja) * | 1993-05-25 | 1994-12-02 | Matsushita Electric Ind Co Ltd | ディジタル信号処理装置 |
US6018778A (en) * | 1996-05-03 | 2000-01-25 | Netcell Corporation | Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory |
US20020001214A1 (en) * | 2000-06-30 | 2002-01-03 | Samsung Electronics Co., Ltd | Two channel memory system having shared control and address bus and memory modules used therefor |
CN100580639C (zh) * | 2002-08-29 | 2010-01-13 | 米克伦技术公司 | 用于控制对具有存储器集线器体系结构的存储模块的存储器存取的方法和系统 |
US20140169112A1 (en) * | 2012-12-13 | 2014-06-19 | SK Hynix Inc. | Semiconductor memory system and operating method thereof |
CN105934747A (zh) * | 2013-11-07 | 2016-09-07 | 奈特力斯股份有限公司 | 混合内存模块以及操作混合内存模块的系统和方法 |
CN204993390U (zh) * | 2015-10-07 | 2016-01-20 | 杭州锐达数字技术有限公司 | 用于数据采集器的双传输系统 |
CN105842563A (zh) * | 2016-04-27 | 2016-08-10 | 南京大全自动化科技有限公司 | 一种适用于馈线终端装置电气量的快速采集方法 |
Also Published As
Publication number | Publication date |
---|---|
US11397581B2 (en) | 2022-07-26 |
US20210279056A1 (en) | 2021-09-09 |
TW202134886A (zh) | 2021-09-16 |
TWI798540B (zh) | 2023-04-11 |
CN113360432B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100382016C (zh) | 具有加速器的数字信号系统及其操作方法 | |
JPH1049507A (ja) | 並列計算機 | |
JP2018502406A (ja) | マルチチャネルi2s伝送制御システムおよび方法 | |
EP2312457A2 (en) | Data processing apparatus, data processing method and computer-readable medium | |
CN109446154A (zh) | 光模块监控系统和方法 | |
WO2013186889A1 (ja) | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 | |
US8463959B2 (en) | High-speed interface for daisy-chained devices | |
US7069352B2 (en) | Serial peripheral interface and related methods | |
CN113360432A (zh) | 数据传输系统 | |
CN107643997A (zh) | 一种扩展模块自动寻址的方法 | |
CN113918501B (zh) | 新型智能多点数工业互联网远程输入输出控制器及方法 | |
CN209215901U (zh) | 伺服驱动器 | |
US7519848B2 (en) | Data transfer apparatus | |
JP3269530B2 (ja) | シリアル通信システムおよびシリアル通信方法 | |
JP4522846B2 (ja) | データ処理モジュール及びその送付候補メッセージの決定方法 | |
JPS63275237A (ja) | シリアルデ−タ結合方法 | |
JP2013142951A (ja) | 情報処理装置、通信方法 | |
JP2676825B2 (ja) | プログラマブルコントローラのバス拡張方式 | |
JP2001043198A (ja) | システム間通信制御方式 | |
JP2002341907A (ja) | 高炉設備プログラムロジックコントローラにおけるデータ送受信方法 | |
JPS61262870A (ja) | バス制御方式 | |
JP2004526221A (ja) | 分散型多重処理システム | |
JPH06266674A (ja) | 並列計算機におけるプロセッサ番号自動設定システム | |
KR19980083753A (ko) | 마스터-슬레이브간의 멀티플렉싱 프로토콜 | |
JPH10173618A (ja) | バススイッチ装置およびその転送順序変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |