CN101034384A - 一种能同时进行读写操作的dma控制器及传输方法 - Google Patents
一种能同时进行读写操作的dma控制器及传输方法 Download PDFInfo
- Publication number
- CN101034384A CN101034384A CN 200710098770 CN200710098770A CN101034384A CN 101034384 A CN101034384 A CN 101034384A CN 200710098770 CN200710098770 CN 200710098770 CN 200710098770 A CN200710098770 A CN 200710098770A CN 101034384 A CN101034384 A CN 101034384A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- write
- dma
- bus interface
- 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
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 61
- 230000002093 peripheral effect Effects 0.000 claims description 48
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims description 3
- 238000005194 fractionation Methods 0.000 claims description 3
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 1
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种能同时进行读写操作的DMA控制器及传输方法,适用于具备两个或两个以上总线的***;DMA控制器包括DMA控制模块,至少两个总线接口、读/写控制寄存器和同时读写使能状态寄存器。方法包括:a、确定进行读/写操作的总线接口;b、探询所述进行读/写数据的总线接口是否都能进行传输,如果读/写数据的总线接口均能进行传输,则进行c;否则继续b;c从所述读数据的总线接口上读取数据放入FIFO中,同时将FIFO中的数据通过所述写数据的总线接口送入总线。采用了本发明的技术方案后,DMA控制器能够同时进行读操作和写操作,提高了DMA传输效率;在采用优化方案后,还能进一步提高总线利用率和内存效率。
Description
技术领域
本发明涉及DMA(Direct Memory Access Control,直接内存访问)传输,具体涉及一种能同时进行读写操作的DMA控制器及传输方法。
背景技术
在含有中央处理器(CPU)的嵌入式***中,为了提高内存和CPU使用效率,在大量内存数据有规律的操作时,通常采用直接内存访问(DirectMemory Access Control,DMA)的方式对数据进行操作。而DMA的操作是通过DMA控制器(DMA Controller,DMAC)来实现的。对于总线***而言,DMA控制器既是总线的从设备,又与CPU一样是总线的主设备(Master)。
现有的DMA控制器与CPU共同作为总线的主设备。如图1所示,当有输入设备需要进行DMA传输时,其通过DMA请求触发器向DMA控制器发出请求。在此之前CPU已经将地址等控制信息配给DMA控制器内的地址寄存器中。当DMA控制器接到DMA传输请求时,其向CPU发起总线占用请求。CPU通常在执行完当前的指令后将总线控制权交给DMA控制器。此时DMA控制器的控制、状态寄存器发生变化,表明已获得总线控制权,并且发起一次DMA传输。通常DMA传输是从外设的数据缓冲区取数放到总线上的存储器中。在传输的过程中,计数器不断计数,直到计数器的记到传输长度时停止计数并改变控制、状态寄存器的内容。DMA控制器此时向CPU归还总线控制权。
在现有技术中,DMA控制器不能同时进行读操作和写操作,在进行DMA传输时需要先将数据从源设备读进DMA控制器的缓存中,然后再写进目的设备,因此传输效率比较低。而且在现有的DMA传输中,如果外设比如UART(Universal Asynchronous Receiver/Transmitter通用异步收发器)等仅有字节类型的缓存,则DMA控制器仅用总线的低8位进行传输,DMA控制器与外设间的数据传输如图2、3所示,降低了总线的利用率,并且也导致DMA传输效率低。
另外,在现有技术中,外设发起的DMA传输通常是从外设的缓存中取数据放到总线上的存储器中;比如当有外设需要进行DMA传输时,当其缓存装满数据后,其通过DMA请求触发器向DMA控制器发起DMA传输请求。在此之前CPU已经将地址等控制信息配给DMA控制器内的地址寄存器中,当DMA控制器接到DMA传输请求时,其向CPU发起总线占用请求。CPU通常在执行完当前指令后将总线控制权交给DMA控制器。此时DMA控制器的控制、状态寄存器发生变化,表明已获得总线控制权,开始进行DMA传输。传输中用一个计数器对传输的数据量进行计数,当计数达到外设缓存空间大小时,DMA控制器向CPU归还总线控制权,完成本次DMA传输;即一次DMA传输只能完成一次外设的DMA传输请求。当外设再次需要进行DMA传输时,就再发起一次DMA传输。虽然内存中缓存空间相对而言较大,但每次还是只能传输相当于外设缓存空间大小的数据量,不能充分利用内存中缓存的空间。由于每次DMA传输的数据量受到外设缓存空间大小的限制,所以在传输大量数据时,往往需要发起多次DMA传输,而每次DMA传输都必须等待CPU将总线控制权交给DMA控制器,因此传输效率低。另外,每进行一次DMA传输,就会对内存进行一次访问。而内存的效率由被访问次数决定,访问得越频繁,内存效率越低,而***效率又与内存效率直接相关,这样的工作方式在某种程度上降低了***的工作效率。
发明内容
针对以上不足,本发明要解决的技术问题是提供一种能同时进行读写操作的DMA控制器,可提高DMA传输效率,适用于具备两个或两个以上总线的***,包括DMA控制模块,用于控制DMA传输;其特征在于:还包括至少两个总线接口、读/写控制寄存器和同时读写使能状态寄存器;
所述同时读写使能状态寄存器,用于存放表示同时读写使能状态的数值,包括“要同时读写”的值,和“不要同时读写”的值;
所述读/写控制寄存器,用于存放进行读/写数据的总线接口;
所述DMA控制模块当所述读写使能状态寄存器的值为“要同时读写数据”时,判断所述读/写控制寄存器所指示的进行读/写数据的总线接口是否都能进行传输;如果能,则从所述读数据的总线接口上读取数据,同时通过所述写数据的总线接口将所读取的数据送入总线。
进一步的,所述的DMA控制器还包括一个先进先出寄存器FIFO;
所述DMA控制模块从所述读数据的总线接口上读取数据后将其放入FIFO中;同时通过所述写数据的总线接将FIFO中的数据送入总线。
进一步的,所述DMA控制模块判断所述读/写数据的总线接口是否都能进行传输是指:
对于读数据的总线接口,判断其是否空闲,以及与其连接的源硬件是否已将要传输的数据准备好;对于写数据的总线接口,要判断其是否空闲,以及与其连接的目的硬件是否有存储数据的空间。
进一步的,DMA控制模块监控FIFO中剩余空间的情况,当其剩余空间大于或等于一次读操作读取的数据量时,从所述读数据的总线接口读取数据;当其剩余空间小于一次读操作读取的数据量时,暂停从所述读数据的总线接口读取数据,直到FIFO剩余空间大小够存放一次读取的数据量。
进一步的,所述的DMA控制器包括多个通道;各通道每次传输的数据量对应于所连接的总线接口;将每次传输的数据量为32字节的通道称为标准通道;将每次传输的数据量不到32字节的通道称为非标准通道;各通道分别通过不同的总线接口连接在不同硬件上。
进一步的,所述DMA控制模块在进行非标准通道和标准通道之间的DMA传输时,启动所述数据拼拆模块对在非标准通道进行DMA传输的数据在所述FIFO中进行拼接或拆分,使每次读、写操作的数据量分别与源、目的硬件的缓存类型一致;并且,当接收到数据拼拆模块的拼接完毕消息时,将FIFO中拼接好的数据发送给目的硬件;当接收到数据拼拆模块的拆分完毕消息时,从源硬件中读取数据放入FIFO;当接收到数据拼拆模块的可发送消息时,将FIFO中拆好的数据块发送给目的硬件;
所述数据拼拆模块当源硬件的缓存类型比目的地址的小时,将从源硬件到达FIFO的数据进行拼接,当到达FIFO的数据量达到目的硬件的缓存类型大小时发给DMA控制模块拼接完毕消息;当源硬件的缓存类型比目的硬件的大时,所述数据拼拆模块从到达FIFO的数据里拆分出符合目的硬件缓存类型大小的数据块,每拆一次发给DMA控制模块一个可发送消息;当发送的数据量达到源硬件的缓存类型大小后发给DMA控制模块拆分完毕消息。
进一步地,所述数据拼拆模块还包括一个计数器,用于在拼接时对到达FIFO的数据量或FIFO接收数据的次数进行计数;在拆分时对从FIFO发送的数据量或FIFO发送数据的次数进行计数。
进一步地,所述DMA控制模块当外设与DMA控制器间传输的字节数达到外设缓存空间大小时,给外设完成本次外设与DMA控制器间的DMA传输请求的信号;当DMA控制器与内存间传输的字节数达到内存缓存空间大小时,向CPU发出通道完成传输中断请求。
进一步地,所述的DMA控制器还包括:
外设缓存大小寄存器,用于存放外设的缓存空间大小的数值;
内存缓存大小寄存器,用于存放内存中缓存空间大小的数值;
第一计数器,用于在一次外设与DMA控制器间的DMA传输中对外设与DMA控制器间传输的字节数进行计数;
第二计数器,用于在一次DMA传输中对DMA控制器与内存间传输的字节数进行计数;
所述DMA控制模块通过判断第一计数器的计数值是否小于外设缓存大小寄存器中的数值,来判断外设与DMA控制器间传输的字节数是否达到外设缓存空间的大小;通过比较第二计数器的计数值是否小于内存缓存大小寄存器中的数值,来判断DMA控制器与内存间传输的字节数是否达到内存缓存空间的大小。
本发明要解决的又一技术问题是提供一种同时进行读写的DMA传输方法,适用于具备两个或两个以上总线的***,可提高DMA传输效率,包括:
(a)要同时进行读写的DMA传输时,确定进行读/写操作的总线接口;
(b)探询所述进行读/写数据的总线接口是否都能进行传输,如果读/写数据的总线接口均能进行传输,则进行步骤(c);否则继续步骤(b);
(c)从所述读数据的总线接口上读取数据放入FIFO中,同时将FIFO中的数据通过所述写数据的总线接口送入总线。
进一步地,所述步骤(b)中,探询所述进行读/写数据的总线接口是否都能进行传输的方法为:
对于读数据的总线接口,判断其是否空闲,以及与其连接的源硬件是否已将大于或等于一次读操作数据量的数据准备好;对于写数据的总线接口,要判断其是否空闲,以及与其连接的目的硬件是否有存储一次写操作数据量的数据的空间。
进一步地,所述步骤(c)中,当FIFO的剩余空间大于或等于一次读操作读取的数据量时,从所述读数据的总线接口读取数据;当FIFO的剩余空间小于一次读操作读取的数据量时,暂停从所述读数据的总线接口读取数据,直到FIFO剩余空间大小够存放一次读取的数据量。
采用了本发明的技术方案后,对于具备两个或两个以上总线的***,DMA控制器能够同时进行读操作和写操作,提高了DMA传输效率;在采用优化方案后,还能进一步提高总线利用率和内存效率。
附图说明
图1是现有技术中DMA控制器的工作原理示意图;
图2是现有技术中DMA控制器接收数据的示意图;
图3是现有技术中DMA控制器发送数据的示意图;
图4是本发明的DMA控制器的具体实施示意图;
图5是本发明的DMA控制器接收数据并进行拼接的示意图;
图6是本发明的DMA控制器拆分并发送数据的示意图。
具体实施方式
下面将对本发明的技术方案进行更详细的说明。
本发明提供了一种能同时进行读/写操作的DMA控制器,如图4所示,适用于具备两个或两个以上总线的***,包括DMA控制模块、至少两个总线接口、至少两个通道、数据拼拆模块、FIFO(First In First Out先进先出寄存器)、寄存器组及第一、第二计数器。
在本发明的DMA控制器中,不同的硬件根据自身缓存类型的大小与相应容量(或大小)的总线接口相连,而各通道根据所连接的总线接口容量的不同,每次传输的数据量不一样,有的每次能传输32字节,比如与用于和内存交换数据的总线接口相连的通道,称为标准通道;有的每次只能传输8个字节,比如与用于和UART(Universal Asynchronous Receiver/Transmitter通用异步收发器)交换数据的总线接口相连的通道,称为非标准通道。因此,不同硬件各自对应于不同的通道,或者说DMA控制器中各通道分别通过不同的总线接口连接在不同硬件上。
所述寄存器组包括:
同时读写使能状态寄存器,用于存放表示同时读写使能状态的数值;比如1表示要同时读写,其它数值表示不要同时读写。
读/写控制寄存器,用于指示进行读/写数据的总线接口。
外设缓存大小寄存器,用于存放外设的缓存空间大小的数值。
内存缓存大小寄存器,用于存放内存中缓存空间大小的数值。
所述计数器包括:
第一计数器,用于在一次外设与DMA控制器间的DMA传输中对外设与DMA控制器间传输的字节数进行计数;
第二计数器,用于在一次DMA传输中对DMA控制器与内存间传输的字节数进行计数。
当需要在DMA传输中同时读写时,所述同时读写使能状态寄存器被CPU配置为“要同时读写数据”的值,同时所述读/写控制寄存器也由CPU进行配置,指示要进行读/写数据的总线接口。
DMA控制模块当所述读写使能状态寄存器的值为“要同时读写数据”时,判断所述读/写控制寄存器所指示的读/写数据的总线接口是否都能进行传输,具体为:对于读数据的总线接口,判断其是否空闲,以及与其连接的源硬件是否已将大于或等于一次读操作数据量的数据准备好;对于写数据的总线接口,要判断其是否空闲,以及与其连接的目的硬件是否有存储一次写操作数据量的数据的空间。
如果读/写数据的总线接口均能进行传输,则从所述读数据的总线接口上读取数据放入FIFO中,同时将FIFO中的数据通过所述写数据的总线接口送入总线,即写数据。
该DMA控制器可以同时读写,因此既支持存储器到外设和外设到存储器的传输,又能支持存储器间的DMA传输,甚至还可以实现外设间的DMA传输,实现了DMA控制器的灵活应用;而且此时需要的FIFO容量比较小。
当所述读写使能状态寄存器的值为“不要同时读写数据”时,可以同现有技术一样进行处理。
所述FIFO用于匹配读操作和写操作的传输速率。这里所述的匹配是指:DMA控制模块监控FIFO中剩余空间的情况,当其剩余空间大于或等于一次读操作读取的数据量时,从所述读数据的总线接口读取数据;当其剩余空间小于一次读操作读取的数据量时,暂停从所述读数据的总线接口读取数据,直到FIFO剩余空间大小够存放一次读取的数据量。比如是从一个容量为32字节的总线接口读数据,当FIFO中剩余空间小于32字节时,就暂停读数据;等到进行写操作后,FIFO的空间又等于或大于32字节时再开始读数据。
因此所述匹配不仅包括当读/写速度不一样——即读/写总线接口大小不一样时的匹配,也包括读/写期间源数据未准备好或目的存储空间不足时对读/写操作的匹配。
所述DMA控制模块在进行非标准通道和标准通道之间的DMA传输时,启动所述数据拼拆模块对在非标准通道进行DMA传输的数据在所述FIFO中进行拼接或拆分,使每次读、写操作的数据量分别与源、目的硬件的缓存类型一致;并且,当接收到数据拼拆模块的拼接完毕消息时,将FIFO中拼接好的数据发送给目的硬件;当接收到数据拼拆模块的拆分完毕消息时,从源硬件中读取数据放入FIFO;当接收到数据拼拆模块的可发送消息时,将FIFO中拆好的数据块发送给目的硬件。
当目的硬件为内存时,说明源硬件的缓存类型比目的地址的小,此时所述数据拼拆模块将从源硬件到达FIFO的数据进行拼接,当到达FIFO的数据量达到目的硬件的缓存类型大小时发给DMA控制模块拼接完毕消息;当源硬件为内存时,说明源硬件的缓存类型比目的硬件的大,所述数据拼拆模块从到达FIFO的数据里拆分出符合目的硬件缓存类型大小的数据块,每拆一次发给DMA控制模块一个可发送消息;当发送的数据量达到源硬件的缓存类型大小后发给DMA控制模块拆分完毕消息。
所述数据拼拆模块还可以包括一个计数器,用于在拼接时对到达FIFO的数据量或FIFO接收数据的次数进行计数;在拆分时对从FIFO发送的数据量或FIFO发送数据的次数进行计数。
比如UART之类的外设的缓存类型仅有字节类型,原先DMA控制器每次只能用总线中的低8位传输数据。而在本发明中,从外设取数据时,如图5所示,DMA控制器从外设缓存中以字节形式读取数据到FIFO中,每读取一次就计数一次,当计数达到32字节或4次时,发给DMA控制模块拼接完毕消息,DMA控制模块将FIFO中的数据以字的形式写入内存;而向外设发送数据时,如图6所示,DMA控制器从内存中以字的形式读取数据到FIFO中,然后从FIFO中以字节的形式将数据发送给硬件,每发送一次就计数一次,当计数达到32字节或4次时,发给DMA控制模块拆分完毕消息;DMA控制模块再去内存里读下面32字节的数据。
所述DMA控制模块还在进行DMA传输期间,控制所述第一、第二计数器进行计数;并通过判断第一计数器的计数值是否小于外设缓存大小寄存器中的数值,来判断外设与DMA控制器间传输的字节数是否达到外设缓存空间的大小,达到时给外设完成本次外设与DMA控制器间的DMA传输请求的信号;还用于通过比较第二计数器的计数值是否小于内存缓存大小寄存器中的数值,来判断DMA控制器与内存间传输的字节数是否达到内存缓存空间的大小,达到时向CPU发出通道完成传输中断请求。
本发明还提供了一种在上述DMA控制器中同时进行读写的DMA传输方法,包括:
(a)CPU配置同时读写使能状态寄存器为“要同时读写”的值,通知所述DMA控制模块需要进行同时读写的DMA传输;CPU同时将要进行读/写操作的总线接口存放进读/写控制寄存器。
(b)所述DMA控制模块根据所述读/写控制寄存器中的值找到相应的读/写操作的总线接口。
(c)所述DMA控制模块探询所述进行读/写数据的总线接口是否都能进行传输,具体为:对于读数据的总线接口,判断其是否空闲,以及与其连接的源硬件是否已将大于或等于一次读操作数据量的数据准备好;对于写数据的总线接口,要判断其是否空闲,以及与其连接的目的硬件是否有存储一次写操作数据量的数据的空间。
如果读/写数据的总线接口均能进行传输,则进行步骤(d);否则继续步骤(c),即继续探询。
(d)所述DMA控制模块从所述读数据的总线接口上读取数据放入FIFO中,同时将FIFO中的数据通过所述写数据的总线接口送入总线,即写数据。在此过程中,DMA控制模块监控FIFO中剩余空间的情况,当其剩余空间大于或等于一次读操作读取的数据量时,从所述读数据的总线接口读取数据;当其剩余空间小于一次读操作读取的数据量时,暂停从所述读数据的总线接口读取数据,直到FIFO剩余空间大小够存放一次读取的数据量。
Claims (12)
1、一种能同时进行读写操作的直接内存访问DMA控制器,适用于具备两个或两个以上总线的***,包括DMA控制模块,用于控制DMA传输;其特征在于:还包括至少两个总线接口、读/写控制寄存器和同时读写使能状态寄存器;
所述同时读写使能状态寄存器,用于存放表示同时读写使能状态的数值,包括“要同时读写”的值,和“不要同时读写”的值;
所述读/写控制寄存器,用于存放进行读/写数据的总线接口;
所述DMA控制模块当所述读写使能状态寄存器的值为“要同时读写数据”时,判断所述读/写控制寄存器所指示的进行读/写数据的总线接口是否都能进行传输;如果能,则从所述读数据的总线接口上读取数据,同时通过所述写数据的总线接口将所读取的数据送入总线。
2、如权利要求1所述的DMA控制器,其特征在于:还包括一个先进先出寄存器FIFO;
所述DMA控制模块从所述读数据的总线接口上读取数据后将其放入FIFO中;同时通过所述写数据的总线接将FIFO中的数据送入总线。
3、如权利要求1所述的DMA控制器,其特征在于:所述DMA控制模块判断所述读/写数据的总线接口是否都能进行传输是指:
对于读数据的总线接口,判断其是否空闲,以及与其连接的源硬件是否已将要传输的数据准备好;对于写数据的总线接口,要判断其是否空闲,以及与其连接的目的硬件是否有存储数据的空间。
4、如权利要求2所述的DMA控制器,其特征在于:DMA控制模块监控FIFO中剩余空间的情况,当其剩余空间大于或等于一次读操作读取的数据量时,从所述读数据的总线接口读取数据;当其剩余空间小于一次读操作读取的数据量时,暂停从所述读数据的总线接口读取数据,直到FIFO剩余空间大小够存放一次读取的数据量。
5、如权利要求2所述的DMA控制器,其特征在于:包括多个通道;各通道每次传输的数据量对应于所连接的总线接口;将每次传输的数据量为32字节的通道称为标准通道;将每次传输的数据量不到32字节的通道称为非标准通道;各通道分别通过不同的总线接口连接在不同硬件上。
6、如权利要求5所述的DMA控制器,其特征在于:
所述DMA控制模块在进行非标准通道和标准通道之间的DMA传输时,启动所述数据拼拆模块对在非标准通道进行DMA传输的数据在所述FIFO中进行拼接或拆分,使每次读、写操作的数据量分别与源、目的硬件的缓存类型一致;并且,当接收到数据拼拆模块的拼接完毕消息时,将FIFO中拼接好的数据发送给目的硬件;当接收到数据拼拆模块的拆分完毕消息时,从源硬件中读取数据放入FIFO;当接收到数据拼拆模块的可发送消息时,将FIFO中拆好的数据块发送给目的硬件;
所述数据拼拆模块当源硬件的缓存类型比目的地址的小时,将从源硬件到达FIFO的数据进行拼接,当到达FIFO的数据量达到目的硬件的缓存类型大小时发给DMA控制模块拼接完毕消息;当源硬件的缓存类型比目的硬件的大时,所述数据拼拆模块从到达FIFO的数据里拆分出符合目的硬件缓存类型大小的数据块,每拆一次发给DMA控制模块一个可发送消息;当发送的数据量达到源硬件的缓存类型大小后发给DMA控制模块拆分完毕消息。
7、如权利要求6所述的DMA控制器,其特征在于:所述数据拼拆模块还包括一个计数器,用于在拼接时对到达FIFO的数据量或FIFO接收数据的次数进行计数;在拆分时对从FIFO发送的数据量或FIFO发送数据的次数进行计数。
8、如权利要求1所述的DMA控制器,其特征在于:所述DMA控制模块当外设与DMA控制器间传输的字节数达到外设缓存空间大小时,给外设完成本次外设与DMA控制器间的DMA传输请求的信号;当DMA控制器与内存间传输的字节数达到内存缓存空间大小时,向CPU发出通道完成传输中断请求。
9、如权利要求8所述的DMA控制器,其特征在于,还包括:
外设缓存大小寄存器,用于存放外设的缓存空间大小的数值;
内存缓存大小寄存器,用于存放内存中缓存空间大小的数值;
第一计数器,用于在一次外设与DMA控制器间的DMA传输中对外设与DMA控制器间传输的字节数进行计数;
第二计数器,用于在一次DMA传输中对DMA控制器与内存间传输的字节数进行计数;
所述DMA控制模块通过判断第一计数器的计数值是否小于外设缓存大小寄存器中的数值,来判断外设与DMA控制器间传输的字节数是否达到外设缓存空间的大小;通过比较第二计数器的计数值是否小于内存缓存大小寄存器中的数值,来判断DMA控制器与内存间传输的字节数是否达到内存缓存空间的大小。
10、一种同时进行读写的DMA传输方法,适用于具备两个或两个以上总线的***,包括:
(a)要同时进行读写的DMA传输时,确定进行读/写操作的总线接口;
(b)探询所述进行读/写数据的总线接口是否都能进行传输,如果读/写数据的总线接口均能进行传输,则进行步骤(c);否则继续步骤(b);
(c)从所述读数据的总线接口上读取数据放入FIFO中,同时将FIFO中的数据通过所述写数据的总线接口送入总线。
11、如权利要求10所述的方法,其特征在于,所述步骤(b)中,探询所述进行读/写数据的总线接口是否都能进行传输的方法为:
对于读数据的总线接口,判断其是否空闲,以及与其连接的源硬件是否已将大于或等于一次读操作数据量的数据准备好;对于写数据的总线接口,要判断其是否空闲,以及与其连接的目的硬件是否有存储一次写操作数据量的数据的空间。
12、如权利要求10所述的方法,其特征在于,所述步骤(c)中,当FIFO的剩余空间大于或等于一次读操作读取的数据量时,从所述读数据的总线接口读取数据;当FIFO的剩余空间小于一次读操作读取的数据量时,暂停从所述读数据的总线接口读取数据,直到FIFO剩余空间大小够存放一次读取的数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100987704A CN100440184C (zh) | 2007-04-26 | 2007-04-26 | 一种能同时进行读写操作的dma控制器及传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100987704A CN100440184C (zh) | 2007-04-26 | 2007-04-26 | 一种能同时进行读写操作的dma控制器及传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101034384A true CN101034384A (zh) | 2007-09-12 |
CN100440184C CN100440184C (zh) | 2008-12-03 |
Family
ID=38730947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100987704A Expired - Fee Related CN100440184C (zh) | 2007-04-26 | 2007-04-26 | 一种能同时进行读写操作的dma控制器及传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100440184C (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567256A (zh) * | 2011-12-16 | 2012-07-11 | 龙芯中科技术有限公司 | 处理器***及其多通道内存拷贝dma加速器和方法 |
CN102831889A (zh) * | 2012-08-30 | 2012-12-19 | 杭州晟元芯片技术有限公司 | 一种语音pwm输出的*** |
CN102937939A (zh) * | 2012-10-10 | 2013-02-20 | 无锡众志和达存储技术股份有限公司 | 基于sata控制器的dma地址对预读取方法 |
CN105786733A (zh) * | 2014-12-26 | 2016-07-20 | 中兴通讯股份有限公司 | 一种写入tcam条目的方法及装置 |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
CN106775477A (zh) * | 2016-12-19 | 2017-05-31 | 湖南国科微电子股份有限公司 | SSD主控BE Buffer、SSD主控、数据传输管理装置及方法 |
CN106909523A (zh) * | 2017-02-24 | 2017-06-30 | 深圳市恒扬数据股份有限公司 | 大规模数据传输方法及*** |
CN107590088A (zh) * | 2017-09-27 | 2018-01-16 | 山东渔翁信息技术股份有限公司 | 一种dma读操作的处理方法、***及相关装置 |
CN111782562A (zh) * | 2020-07-22 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN111782563A (zh) * | 2020-06-17 | 2020-10-16 | 中国人民解放军军事科学院国防科技创新研究院 | 一种用于risc-v微控制器的dvp控制器*** |
CN112328523A (zh) * | 2020-10-28 | 2021-02-05 | 深圳市宏旺微电子有限公司 | 传输双倍速率信号的方法、装置及*** |
CN112416823A (zh) * | 2020-11-15 | 2021-02-26 | 珠海市一微半导体有限公司 | 一种突发模式下的传感器数据读写控制方法、***及芯片 |
CN113419985A (zh) * | 2021-06-15 | 2021-09-21 | 珠海市一微半导体有限公司 | Spi***自动读取数据的控制方法及spi*** |
CN113468097A (zh) * | 2021-07-01 | 2021-10-01 | 中国科学技术大学先进技术研究院 | 基于片上***的数据交换方法 |
CN113590520A (zh) * | 2021-06-15 | 2021-11-02 | 珠海一微半导体股份有限公司 | Spi***自动写入数据的控制方法及spi*** |
CN113836056A (zh) * | 2020-06-24 | 2021-12-24 | 阿里巴巴集团控股有限公司 | 存储控制器的控制方法、存储控制器、芯片及电子设备 |
CN114328318A (zh) * | 2021-12-28 | 2022-04-12 | 湖南航天经济发展有限公司 | 微控制器用直接设备互连的dma控制器及互联控制方法 |
CN115017070A (zh) * | 2022-06-07 | 2022-09-06 | 青岛信芯微电子科技股份有限公司 | 图像矫正方法、图像矫正模块、激光投影设备及存储介质 |
WO2023103793A1 (en) * | 2021-12-10 | 2023-06-15 | International Business Machines Corporation | Debugging communication among units on processor simulator |
CN117149675A (zh) * | 2023-10-30 | 2023-12-01 | 苏州元脑智能科技有限公司 | 接口转换电路、方法、集成芯片、电子设备及存储介质 |
CN118175585A (zh) * | 2024-05-11 | 2024-06-11 | 中国电信股份有限公司 | 数据传输方法及相关设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3201439B2 (ja) * | 1993-05-25 | 2001-08-20 | 三菱電機株式会社 | ダイレクト・メモリ・アクセス・制御回路 |
CN1138907A (zh) * | 1994-09-27 | 1996-12-25 | 世嘉企业股份有限公司 | 数据传输装置与使用该装置的视频游戏机 |
JP3820831B2 (ja) * | 2000-02-08 | 2006-09-13 | 富士ゼロックス株式会社 | メモリ制御方法及び装置 |
CN1713164A (zh) * | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
-
2007
- 2007-04-26 CN CNB2007100987704A patent/CN100440184C/zh not_active Expired - Fee Related
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567256B (zh) * | 2011-12-16 | 2015-01-07 | 龙芯中科技术有限公司 | 处理器***及其多通道内存拷贝dma加速器和方法 |
CN102567256A (zh) * | 2011-12-16 | 2012-07-11 | 龙芯中科技术有限公司 | 处理器***及其多通道内存拷贝dma加速器和方法 |
CN102831889A (zh) * | 2012-08-30 | 2012-12-19 | 杭州晟元芯片技术有限公司 | 一种语音pwm输出的*** |
CN102937939A (zh) * | 2012-10-10 | 2013-02-20 | 无锡众志和达存储技术股份有限公司 | 基于sata控制器的dma地址对预读取方法 |
CN102937939B (zh) * | 2012-10-10 | 2015-12-16 | 无锡众志和达数据计算股份有限公司 | 基于sata控制器的dma地址对预读取方法 |
CN105786733B (zh) * | 2014-12-26 | 2020-08-07 | 南京中兴新软件有限责任公司 | 一种写入tcam条目的方法及装置 |
CN105786733A (zh) * | 2014-12-26 | 2016-07-20 | 中兴通讯股份有限公司 | 一种写入tcam条目的方法及装置 |
US10496597B2 (en) | 2016-04-06 | 2019-12-03 | Institute Of Computing Technology, Chinese Academy Of Sciences | On-chip data partitioning read-write method, system, and device |
WO2017173755A1 (zh) * | 2016-04-06 | 2017-10-12 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
CN106775477A (zh) * | 2016-12-19 | 2017-05-31 | 湖南国科微电子股份有限公司 | SSD主控BE Buffer、SSD主控、数据传输管理装置及方法 |
CN106909523A (zh) * | 2017-02-24 | 2017-06-30 | 深圳市恒扬数据股份有限公司 | 大规模数据传输方法及*** |
CN106909523B (zh) * | 2017-02-24 | 2019-11-22 | 深圳市恒扬数据股份有限公司 | 大规模数据传输方法及*** |
CN107590088A (zh) * | 2017-09-27 | 2018-01-16 | 山东渔翁信息技术股份有限公司 | 一种dma读操作的处理方法、***及相关装置 |
CN111782563A (zh) * | 2020-06-17 | 2020-10-16 | 中国人民解放军军事科学院国防科技创新研究院 | 一种用于risc-v微控制器的dvp控制器*** |
CN111782563B (zh) * | 2020-06-17 | 2023-06-20 | 中国人民解放军军事科学院国防科技创新研究院 | 一种用于risc-v微控制器的dvp控制器*** |
CN113836056A (zh) * | 2020-06-24 | 2021-12-24 | 阿里巴巴集团控股有限公司 | 存储控制器的控制方法、存储控制器、芯片及电子设备 |
CN111782562A (zh) * | 2020-07-22 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN111782562B (zh) * | 2020-07-22 | 2024-05-17 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN112328523A (zh) * | 2020-10-28 | 2021-02-05 | 深圳市宏旺微电子有限公司 | 传输双倍速率信号的方法、装置及*** |
CN112328523B (zh) * | 2020-10-28 | 2023-09-08 | 深圳市宏旺微电子有限公司 | 传输双倍速率信号的方法、装置及*** |
CN112416823B (zh) * | 2020-11-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种突发模式下的传感器数据读写控制方法、***及芯片 |
CN112416823A (zh) * | 2020-11-15 | 2021-02-26 | 珠海市一微半导体有限公司 | 一种突发模式下的传感器数据读写控制方法、***及芯片 |
CN113419985A (zh) * | 2021-06-15 | 2021-09-21 | 珠海市一微半导体有限公司 | Spi***自动读取数据的控制方法及spi*** |
CN113590520A (zh) * | 2021-06-15 | 2021-11-02 | 珠海一微半导体股份有限公司 | Spi***自动写入数据的控制方法及spi*** |
CN113590520B (zh) * | 2021-06-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | Spi***自动写入数据的控制方法及spi*** |
CN113468097A (zh) * | 2021-07-01 | 2021-10-01 | 中国科学技术大学先进技术研究院 | 基于片上***的数据交换方法 |
CN113468097B (zh) * | 2021-07-01 | 2024-02-20 | 合肥中科采象科技有限公司 | 基于片上***的数据交换方法 |
WO2023103793A1 (en) * | 2021-12-10 | 2023-06-15 | International Business Machines Corporation | Debugging communication among units on processor simulator |
CN114328318A (zh) * | 2021-12-28 | 2022-04-12 | 湖南航天经济发展有限公司 | 微控制器用直接设备互连的dma控制器及互联控制方法 |
CN115017070A (zh) * | 2022-06-07 | 2022-09-06 | 青岛信芯微电子科技股份有限公司 | 图像矫正方法、图像矫正模块、激光投影设备及存储介质 |
CN117149675A (zh) * | 2023-10-30 | 2023-12-01 | 苏州元脑智能科技有限公司 | 接口转换电路、方法、集成芯片、电子设备及存储介质 |
CN118175585A (zh) * | 2024-05-11 | 2024-06-11 | 中国电信股份有限公司 | 数据传输方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100440184C (zh) | 2008-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101034384A (zh) | 一种能同时进行读写操作的dma控制器及传输方法 | |
CN101046786A (zh) | 一种实现高效dma传输的dma控制器及传输方法 | |
US8521934B1 (en) | Multi-port context-based host controller | |
US7761642B2 (en) | Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging | |
CN101115054B (zh) | 用于网络接口控制器的存储器映射的缓冲器 | |
US8549204B2 (en) | Method and apparatus for scheduling transactions in a multi-speed bus environment | |
US7472205B2 (en) | Communication control apparatus which has descriptor cache controller that builds list of descriptors | |
CA2573156A1 (en) | Apparatus and method for supporting memory management in an offload of network protocol processing | |
CN100349150C (zh) | 通过直接存储器访问控制器传输数据的***及方法 | |
CN1934554A (zh) | 支持地址信息、数据、及传送合格号的双通道总线结构 | |
CN101540727A (zh) | 一种ip报文的硬件分流方法 | |
CN1991810A (zh) | 可支持多个内部通道软件请求的直接存储器存取控制器 | |
CN102541779B (zh) | 一种提高多数据缓冲区dma效率的***和方法 | |
CN1703687A (zh) | 用于通用串行总线及类似应用的直接存储器存取控制器 | |
CN1864145A (zh) | 用于处理输入/输出命令的方法、***和程序 | |
CN101079015A (zh) | 数据传送方法及*** | |
CN1601489A (zh) | 利用共享专用高速缓存减少高速缓存失误率的方法和*** | |
US20110208891A1 (en) | Method and apparatus for tracking transactions in a multi-speed bus environment | |
CN1159657C (zh) | 总线***和其数据传输方法 | |
US7603488B1 (en) | Systems and methods for efficient memory management | |
CN1295633C (zh) | 一种多cpu通信的方法 | |
CN1658176A (zh) | 数据通信的方法及设备 | |
CN1788261A (zh) | 具有用于传送描述符的存储器的usb主机控制器 | |
JP2006079495A (ja) | ストレージシステム及び論理区画の設定方法 | |
JP2008541276A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081203 Termination date: 20130426 |