CN113468084B - 一种多模式dma数据传输系统 - Google Patents
一种多模式dma数据传输系统 Download PDFInfo
- Publication number
- CN113468084B CN113468084B CN202110593264.2A CN202110593264A CN113468084B CN 113468084 B CN113468084 B CN 113468084B CN 202110593264 A CN202110593264 A CN 202110593264A CN 113468084 B CN113468084 B CN 113468084B
- Authority
- CN
- China
- Prior art keywords
- channel
- data transmission
- state
- data
- module
- 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
Links
Classifications
-
- 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/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
-
- 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
- G06F2213/2804—Systems and methods for controlling the DMA frequency on an access bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
一种多模式DMA数据传输系统,外设通过向微处理器发送中断请求DMA传输,或直接发送中断给DMA控制器请求传输,依据这两种方式,将DMA控制器的通道分为硬件握手启动通道和软件请求启动通道两类,通过预先配置和灵活替换的方式,提高通道分配的效率;通过配置DMA通道FIFO阈值寄存器,根据应用的需求,预先配置工作通道的FIFO阈值,获取通道FIFO的阈值满中断,灵活的控制数据传输节奏;为了提高系统的工作效率,提供一种通道仲裁方式,利用一组当前状态暂存寄存器和load_again标记设置等候栈,使得无需等待当前通道完成传输即可进行高优先级通道的传输。
Description
技术领域
本发明属于微处理器数据传输技术领域,特别是一种多模式DMA数据传输系统。
背景技术
直接存储器访问方式(Direct Memory Access,DMA)是应用于计算机的一种完全由硬件执行数据输入/输出交换的方式。DMA能够通过配置其功能模式,实现内存与外设之间的数据搬移。在DMA方式下,CPU只需要在数据传输之前对DMA控制器进行少量的初始化操作,之后CPU就无需介入数据传输过程,可以和DMA并发的工作,这样数据传输速率以及CPU的利用率都得到了大幅提升。DMA发展至今,在微处理器系统中获得了广泛的应用。
现有的DMA传输,已经发展出链表式、队列管理式的通道分配方式,可以更高效的利用DMA通道进行多个外设与内存之间的数据传输。但是上述方式中传输终端与DMA通道通常是一对一或多对一的交互模式,难以做到更灵活的通道分配;DMA通道内部FIFO通常也是以固定的大小的空间暂存数据,不能更好的配合多种类型的外设进行数据传输;在有多个更高优先级的设备请求数据传输时,通常需要率先完成本次低优先级数据的传输过程,才可进行优先级仲裁,选取最高优先级的通道优先传输,若当前低优先级通道所需传输数据量较大时,传输效率降低。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了多模式DMA数据传输系统,以更好的适应各种不同类型的系统和外设的数据传输需求,提高数据传输效率。
本发明的技术解决方案是:
一种多模式DMA数据传输系统,包括:Slave接口模块、Master接口模块、通道优先级仲裁模块和数据传输通道模块;
Slave接口模块:接收外部发送的数据传输配置信息,生成多个通道的通道传输请求信号,并将通道传输请求信号发送给通道优先级仲裁模块并将数据传输配置信息中的源数据传输地址、目的数据传输地址、数据传输长度、传输启动模式作为通道配置信息传输给Master接口模块;按通道序号由小至大,通道传输请求信号的优先级依次增高;
通道优先级仲裁模块:接收Slave接口模块产生的多个通道的通道传输请求信号和Master接口模块发出的通道分配请求信号,根据通道传输请求信号的优先级顺序,选择优先级最高的通道作为当前的数据传输通道,产生通道READY信号并发送给Master接口模块;在数据传输过程中,若接收到Slave接口模块发出的新的优先级更高的通道传输请求信号,则向数据传输通道模块发出通道暂停信号stopch,等待并接收数据传输通道模块反馈的通道暂停完成信号stopch_ok,更新当前的数据传输通道,产生新的通道READY信号并发送给Master接口模块;
Master接口模块:接收Slave接口模块发送的通道配置信息,产生通道分配请求信号,并发送给通道优先级仲裁模块;在接收通道优先级仲裁模块发出的通道READY信号时,产生通道启动信号,将通道启动信号和通道配置信息传输给数据传输通道模块;
数据传输通道模块:接收Master接口模块传输的通道启动信号和通道配置信息,启动数据传输通道模块中的数据传输状态机,开启当前的数据传输通道的数据传输任务。
若当前无通道正在进行数据传输时,Master接口模块生成的通道分配请求信号有效;
若当前某通道正在进行数据传输时,Master接口模块生成的通道分配请求无效,直到当前数据传输通道完成数据传输并发出传输完成信号complete后,Master接口模块生成的通道分配请求信号有效。
数据传输通道模块中的数据传输状态机状态,包括:空闲状态、通道配置状态、读准备状态、读等待状态、读状态、写准备状态、写状态和写等待状态。
每个通道分别设置有对应的数据传输状态机。
当数据传输通道模块接收到Master接口模块发送的通道启动信号后,数据传输状态机由空闲状态进入通道配置状态,并装载源地址寄存器、目的地址寄存器、读计数器和写计数器,然后进入读准备状态。
在读准备状态,将源地址寄存器置为当前传输地址寄存器,初始化读控制信号,进入读等待状态;
在读等待状态,等待数据传输通道从源地址中读取数据,当发现有数据读入后,将数据写入数据传输通道的FIFO中,更新源地址寄存器以及读计数器,无论有无数据读入均进入读状态。
在读状态,判断FIFO是否为满状态或读计数器是否为零,若FIFO未满或读计数器不为零时,从源地址中读取数据并进入读等待状态,否则进入写准备状态;
在写准备状态,将目的地址寄存器置为当前传输地址寄存器,初始化写数据控制信号,进入写状态。
在写等待状态,将从FIFO中读取的数据写入目的地址中,更新目的地址寄存器以及写计数器;判断写计数器是否为零,写计数器为零时表示数据全部读写完毕,进入空闲状态;否则判断FIFO是否为空状态,当FIFO为空时,进入读准备状态,重复读数据流程;若FIFO不为空时,则返回写状态。
任意时刻,当数据传输通道模块接收到通道优先级仲裁模块发送的通道暂停信号stopch,数据传输通道模块挂起通道信息后,向通道优先级仲裁模块发出通道暂停完成信号stopch_ok,完成握手过程,数据传输通道模块优先响应新的通道传输请求。
所述数据传输通道模块挂起通道信息,具体如下:
暂停当前数据传输通道对应的数据传输状态机,将数据传输状态机设置为空闲状态,并将当前源地址、目的地址、剩余待传数据量暂存在相应的寄存器中,并设置load_again寄存器;然后数据传输通道模块向通道优先级仲裁模块发送通道暂停完成信号stopch_ok。
本发明与现有技术相比的优点在于:
1)将DMA通道分为硬件握手启动和软件请求启动两种方式,且硬件握手启动通道可暂时转化为软件请求启动通道。这种通道分配方式可适应不同类型微处理器外设的具体需求,使得DMA为外设数据传输分配通道更加灵活和高效。
2)可根据不同的外设准备数据的速度、微处理器收发数据的紧急程度的要求,灵活配置通道FIFO的可用空间,提高整个微处理器系统的传输效率。
3)在有多个更高优先级的设备请求数据传输时,借鉴中断处理方式中的进出栈原理,无需率先完成本次低优先级数据的传输过程,只要将当前传输状态暂存至通道等候栈,即可进行高优先级的通道传输。避免了当前工作通道大量传数时的等待过程。
附图说明
图1为本发明DMA控制器的总体结构示意图;
图2为本发明DMA通道内数据传输过程示意图;
图3为本发明DMA通道控制状态机示意图。
具体实施方式
本发明一种多模式DMA数据传输系统,包括:Slave接口模块、Master接口模块、通道优先级仲裁模块和数据传输通道模块。
Slave接口模块:用于进行数据传输之前的预处理,接收外部发送的数据传输配置信息,生成多个通道的通道传输请求信号,并将通道传输请求信号发送给通道优先级仲裁模块并将数据传输配置信息中的源数据传输地址、目的数据传输地址、数据传输长度、传输启动模式作为通道配置信息传输给Master接口模块;按通道序号由小至大,通道传输请求信号的优先级依次增高。通道传输请求信号的优先级顺序为:通道0<通道1<通道2<通道3<通道4<通道5<通道6<通道7。
通道优先级仲裁模块:接收Slave接口模块产生的多个通道的通道传输请求信号和Master接口模块发出的通道分配请求信号,根据通道传输请求信号的优先级顺序,选择优先级最高的通道作为当前的数据传输通道,产生通道READY信号并发送给Master接口模块;在数据传输过程中,若接收到Slave接口模块发出的新的优先级更高的通道传输请求信号,则向数据传输通道模块发出通道暂停信号stopch,等待并接收数据传输通道模块反馈的通道暂停完成信号stopch_ok,完成握手过程,更新当前的数据传输通道,产生新的通道READY信号并发送给Master接口模块;
Master接口模块:接收Slave接口模块发送的通道配置信息,产生通道分配请求信号,并发送给通道优先级仲裁模块;在接收通道优先级仲裁模块发出的通道READY信号时,产生通道启动信号,将通道启动信号和通道配置信息传输给数据传输通道模块;READY信号为表示通道准备好的信号。
若当前系统无通道正在进行数据传输时,Master接口模块生成的通道分配请求信号有效;
若当前系统某通道正在进行数据传输时,Master接口模块生成的通道分配请求无效,直到当前数据传输通道完成数据传输并发出传输完成信号complete后,Master接口模块生成的通道分配请求信号有效;
数据传输通道模块:接收Master接口模块传输的通道启动信号和通道配置信息,启动数据传输通道模块中的数据传输状态机,开启当前的数据传输通道的数据传输任务;
数据传输通道模块中的数据传输状态机共有8个状态,包括:空闲状态、通道配置状态、读准备状态、读等待状态、读状态、写准备状态、写状态和写等待状态。
通道内数据传输过程如图2所示,当数据传输通道模块接收到Master接口模块发送的通道启动信号后,数据传输状态机由空闲状态进入通道配置状态,并装载源地址寄存器、目的地址寄存器、读计数器和写计数器,然后进入读准备状态;
在读准备状态,将源地址寄存器置为当前传输地址寄存器,初始化读控制信号,进入读等待状态;
在读等待状态,等待数据传输通道从源地址中读取数据,当发现有数据读入后,将数据写入数据传输通道的FIFO中,更新源地址寄存器以及读计数器,无论有无数据读入均进入读状态;
在读状态,判断FIFO是否为满状态或读计数器是否为零,若FIFO未满或读计数器不为零时,从源地址中读取数据并进入读等待状态,否则进入写准备状态;
在写准备状态,将目的地址寄存器置为当前传输地址寄存器,初始化写数据控制信号,进入写状态;
在写状态,判断FIFO是否为空状态,若FIFO不为空则通道从FIFO中读取数据,在完成数据读取后进入写等待状态,否则直接进入写等待状态;
在写等待状态,将从FIFO中读取的数据写入目的地址中,更新目的地址寄存器以及写计数器;判断写计数器是否为零,写计数器为零时表示数据全部读写完毕,进入空闲状态;否则判断FIFO是否为空状态,当FIFO为空时,进入读准备状态,重复读数据流程;若FIFO不为空时,则返回写状态。
每个通道分别设置有对应的数据传输状态机,数据搬移过程在状态机中实现,重复上述流程,直至数据传输量达到用户设置的数据传输长度,停止数据传输,释放当前通道;
任意时刻,当数据传输通道模块接收到通道优先级仲裁模块发送的通道暂停信号stopch,挂起通道信息后,数据传输通道模块向通道优先级仲裁模块发出通道暂停完成信号stopch_ok,完成握手过程,数据传输通道模块优先响应新的通道传输请求。
数据传输之前的预处理阶段,微处理器通过AHB总线寻址,写通道配置寄存器对DMA数据传输通道进行配置,主要配置项包括:源数据传输地址、目的数据传输地址、数据传输长度、传输启动模式等配置信息;通过上述配置,DMA可进行外设到内存、外设到外设、内存到外设、内存到内存之间的数据传输;
通道的传输启动模式配置项,具体包括:外设中断启动(硬件启动)模式、CPU启动(软件启动)模式、CPU启动请求信号、源地址增量、目的地址增量、源设备握手允许信号、目的设备握手允许信号;
源设备、目的设备握手允许信号,指通道传输时进行的数据是否可访问的判断。当握手允许信号有效,通道根据源设备数据可读标识位、目的设备可写标识位,决定是否获取或发送数据;所述标识位指源设备存储buffer的非空信号以及目的设备存储buffer的非满信号,用于外部设备的数据读写;当握手允许信号无效,通道可无条件访问源、目的地址,用于SRAM的读写;
Master接口模块生成通道分配请求信号,具体如下,当系统无通道正在进行数据传输时,通道分配请求信号有效;当系统某通道正在进行数据传输时,通道分配请求无效,直到当前通道完成数据传输并发出complete信号为止;
数据传输状态机,用于产生数据传输过程中的读写、暂停、恢复等控制命令。状态机共有8个状态,包括:空闲状态、通道配置状态、读准备状态、读等待状态、读状态、写准备状态、写状态、写等待状态,数据传输通道模块通过状态机控制数据的搬移过程;
数据的搬移过程,具体指FIFO读写使能控制、数据读写流程切换、地址寄存器更新、读写计数,如图2所示。
所述数据传输通道模块中的FIFO,为DMA控制器中的数据buffer,用于通道从源地址读取数据和向目的地址写数据之间的数据暂存;通道内FIFO最大容量为1024x32bit;通道设置了FIFO满阈值寄存器,可根据具体传输需求配置FIFO容量大小;
所述数据传输通道模块挂起通道信息,具体如下:
DMA控制器中有通道正在进行数据传输时,当微处理器为优先级更高的通道配置了传输信息后,Slave接口模块发出通道请求信号,则所述通道优先级仲裁模块向正在进行数据传输的通道发出stopch信号,通道接收到上述信号后,暂停运行通道传输状态机,状态机置为空闲状态,并将当前源地址、目的地址、剩余待传数据量暂存在相应的寄存器中,并设置load_again寄存器,上述寄存器形成一个通道等候栈,标志此通道还有未完成的数据传输;通道进行完上述动作后,向通道优先级仲裁模块发送stopch_ok信号,标志通道挂起完成,此时仲裁模块可重新分配传输通道;
DMA数据传输通道优先级固定,通道0<通道1<通道2<通道3<通道4<通道5<通道6<通道7;当前无通道进行数据传输时,当上述模块收到通道传输请求及通道分配请求后,通道优先级仲裁模块按照上述优先级顺序分配传输通道;当有通道进行数据传输同时收到高优先级通道的传输请求时,仲裁模块通过与通道传输模块的握手实现工作通道的切换;待高优先级通道传输完成后,仲裁模块为DMA分配次优先级传输通道。
本发明的第一方面,提供了一种软硬件结合的DMA通道分配方案,其包括:
根据微处理器不同外设的特征及传输需求,通过软件配置DMA通道启动模式寄存器,将DMA控制器通道分成硬件握手启动通道、软件请求启动通道两类。
给部分有特殊需求的外设分配DMA通道硬件握手接口,锁定外设与DMA通道的连接,使得DMA控制器可直接响应该外设发出的中断信号。微处理器单次配置该通道的传输源地址、目的地址、传输数据大小、地址增减方式等寄存器,接下来每当该外设发起中断后都按照该配置进行数据传输,传输参数未发生改变时无需多次进行配置。
根据微处理器的工作状态,当检测到未分配硬件接口的外设有数据传输需求时,遍历DMA控制器各个通道的工作状态,为其分配空闲的软件启动模式通道;若检测到软件启动模式通道均为在忙状态且硬件握手启动模式通道处于空闲状态时,可通过软件配置启动模式寄存器释放该通道的锁定状态,重新配置传输参数以供急需数据传输的外设使用;原锁定外设若在该通道非空闲时发出请求,则握手不成功,进而等待微处理器为其重新分配通道或等待通道再次空闲后发出握手成功信号后,进行数据传输。
本发明的第二方面,提供了一种内部FIFO空间阈值可调的DMA传输方案,其包括:
设置一个通道FIFO空间阈值寄存器,在数据开始传输之前根据微处理器使用数据的紧急程度以及传输速度的综合考虑,在FIFO中的缓存器深度范围内任意配置本次传输的暂存FIFO阈值。具体是指:
配置DMA通道FIFO空间阈值寄存器,设置内部FIFO阈值,启动通道数据传输。DMA从源地址读取数据存入FIFO中,当FIFO中数据大小到达配置的阈值时,发出FIFO满信号,DMA启动将FIFO中数据写入目的地址的传输,直至全部数据传输完成。
本发明的第三方面,提供了一种更为高效的通道仲裁方案。具体内容如下:
设置通道等候栈,由一组通道传输状态暂存寄存器组成,包括src_log寄存器、dest_log寄存器、剩余待传数量寄存器、load_again标记寄存器。上述仲裁方案包括以下几种应用场景:DMA控制器当前无通道正在进行数据传输时,若多个通道接收到传输请求,则按照固定优先级分配下一个工作通道;当低优先级通道正在进行数据传输时,高优先级通道收到数据传输请求,此时系统将工作通道切换到高优先级通道,并同时在等候栈中寄存低优先级的传输信息,包括当前源地址、当前目的地址、当前待传数量并将load_again标记为1,待高优先级通道传输完成后,DMA通过识别load_again标记,重新load暂存信息并开启该通道继续传输;当高优先级通道正在进行传输时,低优先级通道接收到传输请求,则等待高优先级传输完成后启动该通道。
实施例
如图1所示,为本实施例的DMA控制器总体架构。
DMA控制器采用多通道数据传送方式,支持软件请求和硬件握手两种启动模式。控制器主要分为四个模块,分别是Slave接口模块、Master接口模块、数据传输通道模块、通道优先级仲裁模块。
DMA Slave接口模块主要应用于数据传输之前的预处理阶段,通过AHB总线寻址,将微处理器配置给DMA控制器通道的信息写入相关的寄存器。主要包括:
传输地址寄存器:包括传输源地址寄存器和目的地址寄存器,用于存放数据传输的地址信息。
数据大小寄存器:用于存放本次传输的数据量信息。
地址增量寄存器:用于指示该通道在传输数据时,源地址的增量、目的地址的增量,以满足不同类型外设以及不同位宽的数据传输。具体的,当传输源设备或目的设备为FIFO缓存器时,地址增量为0;当传输源、目的设备为存储器时,根据数据位宽,位宽为8bit时,地址增量为1;位宽16bit时,地址增量为2;位宽32bit时,地址增量为4。
通道启动模式寄存器:用于配置传输通道的启动模式,分为硬件握手启动模式和软件请求启动模式。
缓存器FIFO空间阈值寄存器:用于配置本次传输当前通道的FIFO的可用空间,可根据外设以及微处理器的需求灵活配置。在通道FIFO内设置接收FIFO空间阈值寄存器数据的接口,根据此配置,给出prog_full信号作为到达FIFO阈值的判断信号,达到自由分配FIFO阈值的目的。
通道状态寄存器:用于微处理器查询当前的通道状态是“在忙”还是“空闲”,以供微处理器分配下一工作通道参考。
微处理器根据接收到的外设中断发出传输请求信号(软件请求)或DMA直接接收外设的中断信号(硬件握手请求),Slave模块实时地将请求信息整合后发送到通道仲裁模块并接收当前的优先通道号;将优先处理通道的源地址、目的地址、传输数量、地址增量等信息配置给Master接口模块内的对应寄存器,触发对应通道的传输使能。
Master接口模块负责接收通道仲裁器发送的优先通道号以及Slave模块传送的当前通道源地址、目的地址、数据大小等信息;启动通道传输,产生并发送读写控制信号,更新地址寄存器、计数器。
图2为DMA通道内的数据传输过程。DMA数据传输通道主要由读写控制逻辑、计数器、地址寄存器和FIFO缓存器组成。
其中FIFO缓存器设置阈值接口,接收由Slave模块配置的通道阈值,并输出prog_full信号指示接收数据量是否到达阈值,控制数据搬移的节奏。
图3为通道数据传输流程状态机。通道内的数据传输控制部分是通过有限状态机完成的,状态机主要产生读写、暂停、恢复等控制命令,控制数据的搬移过程。状态机共有8个状态。
IDLE,空闲状态:该状态为默认空闲状态,DMA通道无任何操作,等待通道触发信号NextChannelReady,触发后进入LOAD_CONFIG状态。
LOAD_CONFIG,通道配置状态:通道启动后,装载源、目的地址寄存器,读、写计数器。进入SRC_PREPARE状态。
SRC_PREPARE,读准备状态:将源地址寄存器置为当前地址寄存器,初始化读数据控制信号。进入SRC_WAIT状态。
SRC_WAIT,读等待状态:等待DMA从源地址读取数据,当发现有数据读入后,将该数据写入DMA内部的FIFO中;更新源地址寄存器以及读计数器。
SRC_TRANSFER,读状态:判断FIFO是否满状态或读计数器是否为零,若FIFO满或读计数器为零则从源地址中读取数据否则进入DEST_PREPARE状态开始写数据流程。
DEST_PREPARE,写准备状态:将目的地址寄存器置为当前地址寄存器,初始化写数据控制信号。进入DEST_TRANSFER状态。
DEST_TRANSFER,写状态:判断FIFO是否空状态,若FIFO不为空则从FIFO中读取数据,否则直接进入DEST_WAIT状态。
DEST_WAIT,写等待状态:将从DMA内部FIFO中读取的数据写入目的地址中,更新目的地址寄存器以及写计数器;判断写计数器是否为零,为零时表示数据全部读写完毕,进入IDLE状态;否则判断FIFO是否空状态,FIFO为空时,进入SRC_PREPARE状态,重复写数据流程。
在当前通道数据传输过程中,若有更高优先级的外设请求出现,则通道将会在当前一组数据的读或写操作之后,在等待栈中存储当前通道地址寄存器、读写计数器的数值并让出数据传输权。下一工作通道进入IDLE状态。
DMA数据传输通道的优先级固定,通道0<通道1<通道2<通道3<通道4<通道5<通道6<通道7。仲裁器采用轮询算法实现通道优先级选择。第一次数据传输或当前通道传输结束时,Master接口模块请求新的传输通道,仲裁器按照通道1~通道7优先级递增的顺序进行分配;在当前通道数据传输的过程中,若有优先级更高的设备发出传输请求,则仲裁模块发出stopch信号通知当前通道暂停数据传输,当前通道在当前一组数据传输结束后发出stopch_ok应答信号,将计数器、地址寄存器数值暂存至src_log寄存器、dest_log寄存器、剩余待传数量寄存器、load_again寄存器中形成一个等候栈,并暂停数据传输。此时仲裁器重新分配传输通道。
根据上述操作步骤,通过配置相关的寄存器,DMA控制器可以完成外设与内部存储器、外设与外设、内部存储器与外设、内部存储器与内部存储器之间的任意传输。
本发明说明书中未作详细描述的内容属本领域专业技术人员的公知技术。
Claims (8)
1.一种多模式DMA数据传输系统,其特征在于,包括:Slave接口模块、通道优先级仲裁模块、Master接口模块和数据传输通道模块;
Slave接口模块:接收外部发送的数据传输配置信息,生成多个通道的通道传输请求信号,并将通道传输请求信号发送给通道优先级仲裁模块并将数据传输配置信息中的源数据传输地址、目的数据传输地址、数据传输长度、传输启动模式作为通道配置信息传输给Master接口模块;按通道序号由小至大,通道传输请求信号的优先级依次增高;
通道优先级仲裁模块:接收Slave接口模块产生的多个通道的通道传输请求信号和Master接口模块发出的通道分配请求信号,根据通道传输请求信号的优先级顺序,选择通道传输请求信号中优先级最高的通道作为当前的数据传输通道,产生通道READY信号并发送给Master接口模块;在数据传输过程中,若接收到Slave接口模块发出的新的优先级更高的通道传输请求信号,则向数据传输通道模块发出通道暂停信号stopch,等待并接收数据传输通道模块反馈的通道暂停完成信号stopch_ok,更新当前的数据传输通道,产生新的通道READY信号并发送给Master接口模块;
Master接口模块:接收Slave接口模块发送的通道配置信息,产生通道分配请求信号,并发送给通道优先级仲裁模块;在接收通道优先级仲裁模块发出的通道READY信号时,产生通道启动信号,将通道启动信号和通道配置信息传输给数据传输通道模块;
数据传输通道模块:接收Master接口模块传输的通道启动信号和通道配置信息,启动数据传输通道模块中的数据传输状态机,开启当前数据传输通道的数据传输任务;
任意时刻,当数据传输通道模块接收到通道优先级仲裁模块发送的通道暂停信号stopch,数据传输通道模块挂起通道信息后,向通道优先级仲裁模块发出通道暂停完成信号stopch_ok,完成握手过程,数据传输通道模块优先响应新的通道传输请求;
所述数据传输通道模块挂起通道信息,具体如下:
暂停当前数据传输通道对应的数据传输状态机,将数据传输状态机设置为空闲状态,并将当前源地址、目的地址、剩余待传数据量暂存在相应的寄存器中,并设置load_again寄存器;然后数据传输通道模块向通道优先级仲裁模块发送通道暂停完成信号stopch_ok。
2.根据权利要求1所述的一种多模式DMA数据传输系统,其特征在于:
Master接口模块生成的通道分配请求信号的有效性,根据当前是否有通道正在进行数据传输任务确定;
若当前无通道正在进行数据传输时,Master接口模块生成的通道分配请求信号有效;
若当前某通道正在进行数据传输时,Master接口模块生成的通道分配请求无效,直到当前数据传输通道完成数据传输并发出传输完成信号complete后,Master接口模块生成的通道分配请求信号有效。
3.根据权利要求1所述的一种多模式DMA数据传输系统,其特征在于,数据传输通道模块中的数据传输状态机状态,包括:空闲状态、通道配置状态、读准备状态、读等待状态、读状态、写准备状态、写状态和写等待状态。
4.根据权利要求3所述的一种多模式DMA数据传输系统,其特征在于,每个通道分别设置有对应的数据传输状态机。
5.根据权利要求4所述的一种多模式DMA数据传输系统,其特征在于:
当数据传输通道模块接收到Master接口模块发送的通道启动信号后,数据传输状态机由空闲状态进入通道配置状态,并装载源地址寄存器、目的地址寄存器、读计数器和写计数器,然后进入读准备状态。
6.根据权利要求5所述的一种多模式DMA数据传输系统,其特征在于:
数据传输状态机在读准备状态,将源地址寄存器置为当前传输地址寄存器,初始化读控制信号,进入读等待状态;
数据传输状态机在读等待状态,等待数据传输通道从源地址中读取数据,当发现有数据读入后,将数据写入数据传输通道的FIFO中,更新源地址寄存器以及读计数器,无论有无数据读入均进入读状态。
7.根据权利要求6所述的一种多模式DMA数据传输系统,其特征在于:
数据传输状态机在读状态,判断FIFO是否为满状态或读计数器是否为零,若FIFO未满或读计数器不为零时,从源地址中读取数据并进入读等待状态,否则进入写准备状态;
数据传输状态机在写准备状态,将目的地址寄存器置为当前传输地址寄存器,初始化写数据控制信号,进入写状态。
8.根据权利要求7所述的一种多模式DMA数据传输系统,其特征在于:
数据传输状态机在写等待状态,将从FIFO中读取的数据写入目的地址中,更新目的地址寄存器以及写计数器;判断写计数器是否为零,写计数器为零时表示数据全部读写完毕,进入空闲状态;否则判断FIFO是否为空状态,当FIFO为空时,进入读准备状态,重复读数据流程;若FIFO不为空时,则返回写状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110593264.2A CN113468084B (zh) | 2021-05-28 | 2021-05-28 | 一种多模式dma数据传输系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110593264.2A CN113468084B (zh) | 2021-05-28 | 2021-05-28 | 一种多模式dma数据传输系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468084A CN113468084A (zh) | 2021-10-01 |
CN113468084B true CN113468084B (zh) | 2023-08-29 |
Family
ID=77871694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110593264.2A Active CN113468084B (zh) | 2021-05-28 | 2021-05-28 | 一种多模式dma数据传输系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468084B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328316B (zh) * | 2021-11-22 | 2024-01-26 | 北京智芯微电子科技有限公司 | Dma控制器、soc系统及基于dma控制器的数据搬运方法 |
CN114328003B (zh) * | 2022-03-16 | 2022-06-03 | 宜科(天津)电子有限公司 | 通过crc硬件模块实现数据倒序处理的方法 |
CN114328322B (zh) * | 2022-03-17 | 2022-08-05 | 之江实验室 | 一种可配置功能模式的dma控制器运行方法 |
CN114968863A (zh) * | 2022-05-26 | 2022-08-30 | 无锡华大国奇科技有限公司 | 一种基于dma控制器的数据传输方法 |
CN115168260B (zh) * | 2022-09-08 | 2022-12-06 | 深圳鲲云信息科技有限公司 | 直接内存存取装置、数据传输方法及集成电路系统 |
CN116756066B (zh) * | 2023-08-21 | 2024-01-02 | 北京紫光芯能科技有限公司 | 一种直接存储器访问控制方法及控制器 |
CN117648287B (zh) * | 2024-01-30 | 2024-05-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种片上数据处理系统、方法、服务器及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN102231142A (zh) * | 2011-07-21 | 2011-11-02 | 浙江大学 | 一种带有仲裁器的多通道dma控制器 |
CN103064808A (zh) * | 2011-10-24 | 2013-04-24 | 北京强度环境研究所 | 优先级可调多通道dma控制器 |
CN106933760A (zh) * | 2017-03-13 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种基于axi协议的dma控制器及数据上传方法 |
CN109471816A (zh) * | 2018-11-06 | 2019-03-15 | 西安微电子技术研究所 | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 |
-
2021
- 2021-05-28 CN CN202110593264.2A patent/CN113468084B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN102231142A (zh) * | 2011-07-21 | 2011-11-02 | 浙江大学 | 一种带有仲裁器的多通道dma控制器 |
CN103064808A (zh) * | 2011-10-24 | 2013-04-24 | 北京强度环境研究所 | 优先级可调多通道dma控制器 |
CN106933760A (zh) * | 2017-03-13 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种基于axi协议的dma控制器及数据上传方法 |
CN109471816A (zh) * | 2018-11-06 | 2019-03-15 | 西安微电子技术研究所 | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113468084A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113468084B (zh) | 一种多模式dma数据传输系统 | |
US9710310B2 (en) | Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines | |
US8392635B2 (en) | Selectively enabling a host transfer interrupt | |
US9183167B2 (en) | Enhanced I/O performance in a multi-processor system via interrupt affinity schemes | |
US9251108B2 (en) | Managing access to shared buffer resources | |
US9158713B1 (en) | Packet processing with dynamic load balancing | |
EP3352090A1 (en) | Multi-channel dma system with command queue structure supporting three dma modes | |
US6889266B1 (en) | Method for delivering packet boundary or other metadata to and from a device using direct memory controller | |
EP3644192B1 (en) | Master chip, slave chip, and dma transfer system between chips | |
CN107810492B (zh) | 可配置的邮箱数据缓冲器装置 | |
KR20160056382A (ko) | 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법 | |
US5649209A (en) | Bus coupling information processing system for multiple access to system bus | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
KR20020008955A (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
JP2008541276A (ja) | 同時読み出し応答確認拡張ダイレクト・メモリ・アクセス・ユニット | |
JPH06175786A (ja) | ディスクアレイ装置 | |
CN101169766A (zh) | 动态建立直接内存访问通路的方法及系统 | |
JP2007172622A (ja) | データ転送制御 | |
CN116107697B (zh) | 一种不同操作系统之间互相通信的方法及系统 | |
KR102260819B1 (ko) | 다중 프로세서 인터럽트 신호 처리 장치 | |
US8135878B1 (en) | Method and apparatus for improving throughput on a common bus | |
WO2007039933A1 (ja) | 演算処理装置 | |
CN105723317B (zh) | 用于与非易失性存储器通信的方法和系统 | |
CN117312202B (zh) | 片上系统和用于片上系统的数据传输方法 | |
KR102496994B1 (ko) | PCIe 인터페이스 장치 및 그 동작 방법 |
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 |