CN116185914A - 一种多通道dma控制器的轮转处理请求方法 - Google Patents
一种多通道dma控制器的轮转处理请求方法 Download PDFInfo
- Publication number
- CN116185914A CN116185914A CN202310171776.9A CN202310171776A CN116185914A CN 116185914 A CN116185914 A CN 116185914A CN 202310171776 A CN202310171776 A CN 202310171776A CN 116185914 A CN116185914 A CN 116185914A
- Authority
- CN
- China
- Prior art keywords
- state
- dma
- channel
- state machine
- request
- 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.)
- Pending
Links
Images
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/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
-
- 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通道可配置若干个优先级;在优先级相同的情况下,通道号越小的DMA通道优先级越高;当多个通道同时接收到请求时,最高优先级的通道优先启动传输;本次传输完成之后仲裁器会在其他剩余通道中选择优先级最高的通道启动传输,由于每次仲裁器在仲裁时仲裁包括电器通道,所以在下一次启动传输通道的优先级可能会低于当前通道;轮转请求处理方法有效的避免了在请求过程中花费长时间等待处理应答,相对于传统DMA在处理多请求时更加灵活。
Description
技术领域
本发明涉及多通道DMA控制器技术领域,具体为一种多通道DMA控制器的轮转处理请求方法。
背景技术
目前,数据交互传送的传统方式是以CPU的控制为核心,CPU的控制原理是执行相应的执行代码来操作对应设备进行数据传送。数据传送时必须由CPU控制、处理,CPU将源设备的数据取至CPU的内存,再把内存中的数据写入目的端设备,因此CPU指令执行地速度快慢必然会制约数据交换的速率的高低,同时这样的数据交互模式无疑会使CPU运行时间增加,大量资源被占用,使CPU的性能降低,进而影响到整个系统的性能。DMA类型的数据传送是一种不需要CPU的过程参与而直接访问存储器的技术,但是整个数据传送过程中存在着请求花费过长时间等待处理应答的现象。
发明内容
本发明的目的在于提供一种多通道DMA控制器的轮转处理请求方法,以解决上述背景技术中提出的问题。
为了解决上述技术问题,本发明提供如下技术方案:一种多通道DMA控制器的轮转处理请求方法,其特征在于,方法包括:
DMA控制器包括若干个DMA通道;每个DMA通道内置有主设备状态机和主机控制模块,DMA控制器包括若干种状态;
每个DMA通道配置若干个不同的优先级;
根据优先级确定多个通道同时接收请求时的启动顺序;
完成一次传输后的仲裁器根据优先级从剩余通道进行选择。
进一步的,DMA的通道传输过程包括:
DMA通道在优先级相同时,通道号越小DMA通道优先级越高;
多个通道同时请求,优先级最高的通道优先传输;通道传输在完成后,仲裁器在剩余挂起通道中选择优先级最高的通道启动传输;
DMA通道都内置主设备状态机保证传输;主设备状态机包含9个状态。
进一步的,主设备状态机在9个状态之间跳转的过程包括:
当系统时钟上升沿复位信号有效时,将所有主设备状态机都跳转到空闲状态;主设备机处于空闲状态时,当DMA通道使能同时DMA通道待传输次数不为0,将主设备状态机从空闲状态跳转到开始状态;
主设备状态机处于开始状态时,时钟上升沿将DMA通道的寄存器进行驱动,当时钟上升沿存在软件请求同时DMA通道的待传输次数寄存器的值为0时,将软件请求赋值为1,对AHB主机总线访问请求信号进行拉高,主设备状态机从开始状态跳转到等待请求状态;
主设备状态机处于等待请求状态时,当有外设请求或有软件请求,对信号进行拉高;当时钟上升沿发生地址溢出或DMA通道获取到AHB主机传输响应信号信号为error时,对信号进行拉高,将主设备状态机从等待请求状态跳转到错误状态;当有外设请求或软件请求,同时检测到DMA通道被选中,将主设备状态机从等待请求状态跳转到读状态;
当所有DMA通道的主设备都是空闲状态时,LLMasterIsIdle1为1,时钟上升沿的DMA通道接收到请求同时所有DMA通道的主设备状态机都是空闲状态时,选择有效DMA通道的过程为从dma_pl_vh[5:0]的第0位检索到dma_pl_l[5:0]的第5位,检索到1停止,该位x指示接收到请求的dma通道[X]=1,被授权的通道[5:0]其它位为0,以此实现相同优先级时选择通道号低的;当时钟上升沿的通道x的使能开关关闭并且所有的DMA通道主设备状态机都是空闲状态时,接收到请求的dma通道[X]等于0;
主设备状态机处于读状态时,对AHB主机传输控制信号进行赋值,将读地址信息发送到地址总线上;当DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从读状态跳转到错误状态;当DMA通道获取到AHB主机传输完成信号信号时,时钟上升沿对数据进行计算,对信号进行拉高,将主设备状态机从读状态跳转到写状态;
主设备状态机处于写状态时,对AHB主机传输控制信号进行赋值,将读地址信息发送到地址总线上;对AHB主机写控制信号进行拉高;当DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从写状态跳转到错误状态;当DMA通道获取到AHB主机传输完成信号信号时,将主设备状态机从写状态跳转到写回数据状态;
主设备状态机处于写回数据状态时,DMA通道将信号发送到地址总线,同时获取AHB主机传输完成信号信号,将主设备状态机从写回数据状态跳转到最后状态;
主设备状态机处于最后状态时,对信号进行拉高,将主设备状态机从最后状态跳转到结束状态;
主设备状态机处于错误状态时,DMA控制器进行中断处理,将主设备状态机从最后状态跳转到结束状态;
主设备状态机处于结束状态时,对信号进行拉高,将主设备状态机从结束状态跳转到空闲状态;
上述步骤中当系统时钟上升沿复位信号有效时将时钟上升沿处于的所有状态跳转到空闲状态,是因为当系统时钟上升沿复位信号有效DMA通道不在工作,此时将所有的时钟上升跳转到空间状态是为了方便DMA的正常传输。
进一步的,主设备状态机处于开始状态对DMA通道的寄存器进行驱动过程包括:
将DMA通道源地址寄存器的值驱动到读地址信息;将DMA通道待传输次数寄存器的值驱动到计数器,将计数器赋值为0;当时钟上升沿存在软件请求同时DMA通道的待传输次数和寄存器的值为0。
进一步的,主设备状态机处于等待请求状态时的跳转过程包括:
当有外设请求时,对外设请求进行拉高,当有外设请求或者有软件请求,同时DMA通道使能,dma通道授权信号信号为低,对接收到请求的dma通道和dma通道的ahb主机状态机进行拉高;当时钟上升沿发生地址溢出,将dma传输地址溢出赋值为1,主设备状态机从等待请求状态跳转到错误状态;
当有外设请求或有软件请求,同时dma通道授权信号信号为高且无请求信号为高或dma通道授权信号信号为低且下一个被授权的dma通道和所有dma通道的ahb主机状态机都为高时,将主设备状态机从等待请求状态跳转到读状态。
进一步的,主设备状态机处于读状态时的跳转过程包括:
将AHB主机传输控制信号信号赋值为2’b10,通过DMA通道对主设备读数据的有效字节进行控制,DMA作为AHB主机,将读地址信息发送到地址总线的AHB主机地址总线信号上,当DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从读状态跳转到错误状态;
将AHB主机传输控制信号信号赋值为2’b10,通过DMA通道对主设备读数据的有效字节进行控制,DMA作为AHB主机,将读地址信息发送到地址总线的AHB主机地址总线信号上;当DMA通道获取到AHB主机传输完成信号信号时,时钟上升沿计算出新的地址信息、新的计数器值和写回计数器有效信号,将写回源地址寄存器有效信号进行拉高,将上升沿从读状态跳转到写状态;
上述步骤中开始状态中将DMA通道源地址寄存器的值驱动到读地址信息;将DMA通道待传输次数寄存器的值驱动到计数器,将计数器赋值为0,使开始状态跳转到等待请求状态,保证DMA正常传输。
进一步的,主设备状态机处于写状态时的跳转过程包括:
将AHB主机传输控制信号信号赋值为2’b10,对AHB主机写控制信号信号进行拉高;将DMA通道作为AHB主机,将写地址信号发送到地址地址总线AHB主机地址总线上;当DMA通道到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从写状态跳转到错误状态;
当DMA通道获取到AHB主机传输完成信号信号时,时钟上升沿计算新的读地址和写地址,对写回目的地址寄存器有效信号进行拉高,将主设备状态机从写状态跳转到写回数据状态。
进一步的,主设备状态机从写回数据状态跳转到最后状态的过程包括:
将DMA控制器作为AHB主机,将32’h0000_0000发送到地址总线AHB主机地址总线上;当DMA通道获取的AHB主机传输完成信号信号、时钟上升沿无请求,同时待传输次数不为0或为循环模式时,将主设备状态机跳转到等待请求状态,否则将主设备状态机跳转到最后状态。
进一步的,主设备状态机从最后状态跳转到结束状态的过程包括:
将dma通道的ahb主机状态机、写回源地址寄存器有效信号、写回目的地址寄存器有效信号拉高,将主设备状态机从最后状态跳转到结束状态。
进一步的,主设备状态机从结束状态跳转到空闲状态的过程包括:
当时钟上升沿处于结束状态时,对dma通道的ahb主机状态机拉高,DMA通道作为AHB主机,将32’h0000_0000发送到地址总线AHB主机地址总线上,当DMA通道获取到AHB主机传输完成信号信号时,将主设备状态机跳从结束状态跳转到空闲状态。
与现有技术相比,本发明所达到的有益效果是:本发明当多个通道同时接收到请求时,最高优先级的通道建辉优先进行传输,完成本次传输后仲裁器会在其他挂起通道中选择优先级最高的通道进行传输,由于每次仲裁不包括当前通道,所以下次启动传输通道的优先级可能低于当前通道;当具有三个不同优先级的通道同时请求传输且传输请求连续时,那么会在两个高优先级的通道中进行交替传输;当一个通道传输完成后,剩下两个通道再次交替传输;这种轮转处理请求机制避免了某一请求花费过长时间等待处理应答,相对采用传统DMA在处理多请求时更灵活。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明一种多通道DMA控制器的轮转处理请求方法的DMA控制器通道主设备状态机图;
图2是本发明一种多通道DMA控制器的轮转处理请求方法的处理单个请求时的DMA控制器部分信号波形图;
图3本发明一种多通道DMA控制器的轮转处理请求方法的处理多个请求时的DMA控制器部分信号波形图;
图4本发明一种多通道DMA控制器的轮转处理请求方法的DMA通道优先级图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-图4,本发明提供技术方案:一种多通道DMA控制器的轮转处理请求方法,其特征在于,方法包括:
DMA控制器包括若干个DMA通道;每个DMA通道内置有主设备状态机和主机控制模块,DMA控制器包括若干种状态;
每个DMA通道配置若干个不同的优先级;
根据优先级确定多个通道同时接收请求时的启动顺序;
完成一次传输后的仲裁器根据优先级从剩余通道进行选择。
其中,DMA的通道传输过程包括:
DMA通道在优先级相同时,通道号越小DMA通道优先级越高;
多个通道同时请求,优先级最高的通道优先传输;通道传输在完成后,仲裁器在剩余挂起通道中选择优先级最高的通道启动传输;
DMA通道都内置主设备状态机保证传输;主设备状态机包含9个状态。
其中,主设备状态机在9个状态之间跳转的过程包括:
当系统时钟上升沿复位信号有效时,将所有主设备状态机都跳转到空闲状态;主设备机处于空闲状态时,当DMA通道使能同时DMA通道待传输次数不为0,将主设备状态机从空闲状态跳转到开始状态;
所有通道的主设备状态机都是空闲状态时所有dma通道的ahb主机状态机为1;当时钟上升沿有DMA通道接收到请求并且所有DMA通道的主设备状态机都是空闲状态时,选择出有效DMA通道;选择过程为从dma_pl_vh[5:0]的第0位检索到dma_pl_l[5:0]的第5位,检索到1停止,该位x指示下一个被授权的dma通道[x]=1,下一个被授权的dma通道[5:0]的其它位为0,以此实现相同优先级时选择通道号低;时钟上升沿通道x的使能开关关闭并且所有通道的主设备状态机都是空闲状态时,接收到请求的dma通道[X]为0,即dma通道授权信号x为0;
当有效DMA通道接收到请求并且所有DMA通道的主设备状态机都是空闲状态时,得到信号下一个被授权的dma通道;得到过程为从dma_pl_vh[5:0]的第0位检索到dma_pl_l[5:0]的第5位,检索到1停止,该位x指示下一个被授权的dma通道[x]=1,下一个被授权的dma通道[5:0]的其它位为0,以此实现相同优先级时选择通道号低的;
当无DMA通道接收到请求时信号无请求信号x为1时,可以分为以下情况进行讨论:
当只有单个DMA通道收到软件请求或软件外设时,如图2所示:
当第一个请求来的时候,下一个被授权的dma通道[x]为高且dma通道授权信号x为高,满足跳转条件,主设备状态机的状态可以跳转到下一个状态。第二个请求来的时候,dma通道授权信号x还未拉低,但此时无请求信号为高,也满足跳转条件,主设备状态机的状态可以跳转到下一个状态;
当多个DMA通道同时收到软件请求或外设请求时,如图3所示:
第一个请求来的时候,下一个被授权的dma通道[0]为高且dma通道授权信号0为高,满足跳转条件,通道0主设备状态机的状态可以跳转到下一个状态。随后dma通道授权信号0拉高了,所以通道0无法拉高,通道0此刻无法处理第二个请求。而对于通道1,下一个被授权的dma通道[1]为高且dma通道授权信号1为高,满足跳转条件,通道1主设备状态机的状态可以跳转到下一个状态;
主设备状态机处于开始状态时,时钟上升沿将DMA通道的寄存器进行驱动,当时钟上升沿存在软件请求同时DMA通道的待传输次数寄存器的值为0时,将软件请求赋值为1,对AHB主机总线访问请求信号进行拉高,主设备状态机从开始状态跳转到等待请求状态;
主设备状态机处于等待请求状态时,当有外设请求或有软件请求,对信号进行拉高;当时钟上升沿发生地址溢出或DMA通道获取到AHB主机传输响应信号信号为error时,对信号进行拉高,将主设备状态机从等待请求状态跳转到错误状态;当有外设请求或软件请求,同时检测到DMA通道被选中,将主设备状态机从等待请求状态跳转到读状态;
主设备状态机处于读状态时,对AHB主机传输控制信号进行赋值,将读地址信息发送到地址总线上;当DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从读状态跳转到错误状态;当DMA通道获取到AHB主机传输完成信号信号时,时钟上升沿对数据进行计算,对信号进行拉高,将主设备状态机从读状态跳转到写状态;
主设备状态机处于写状态时,对AHB主机传输控制信号进行赋值,将读地址信息发送到地址总线上;对AHB主机写控制信号进行拉高;当DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从写状态跳转到错误状态;当DMA通道获取到AHB主机传输完成信号信号时,将主设备状态机从写状态跳转到写回数据状态;
主设备状态机处于写回数据状态时,DMA通道将信号发送到地址总线,同时获取AHB主机传输完成信号信号,将主设备状态机从写回数据状态跳转到最后状态;
主设备状态机处于最后状态时,对信号进行拉高,将主设备状态机从最后状态跳转到结束状态;
主设备状态机处于错误状态时,DMA控制器进行中断处理,将主设备状态机从最后状态跳转到结束状态;
主设备状态机处于结束状态时,对信号进行拉高,将主设备状态机从结束状态跳转到空闲状态;
其中,主设备状态机处于开始状态对DMA通道的寄存器进行驱动过程包括:
将DMA通道源地址寄存器的值驱动到读地址信息;将DMA通道待传输次数寄存器的值驱动到计数器,将计数器赋值为0;当时钟上升沿存在软件请求同时DMA通道的待传输次数和寄存器的值为0;
其中,主设备状态机处于等待请求状态时的跳转过程包括:
当有外设请求时,对外设请求进行拉高,当有外设请求或者有软件请求,同时DMA通道使能,dma通道授权信号信号为低,对接收到请求的dma通道和dma通道的ahb主机状态机进行拉高;当时钟上升沿发生地址溢出,将dma传输地址溢出赋值为1,主设备状态机从等待请求状态跳转到错误状态;
当有外设请求或有软件请求,同时dma通道授权信号信号为高且无请求信号为高或dma通道授权信号信号为低且下一个被授权的dma通道和所有dma通道的ahb主机状态机都为高时,将主设备状态机从等待请求状态跳转到读状态;
当主设备状态机为等待请求状态时,软件请求信号为高或外设请求信号为高,且DMA通道通道使能和HGRANT信号为低时,会生成请求信号。DMA通道生成的请求信号,模块masterctrl进行相应处理;
如图4所示:
模块masterctrl根据该DMA通道DMA通道控制寄存器位8到位9位配置DMA通道优先级。默认为DMA通道优先级低;当DMA通道x接收到请求并且DMA通道优先级为低时,dma_pl_l[x]为1,当DMA通道x接收到请求并且DMA通道优先级为中时,dma_pl_m[x]为1,当DMA通道x接收到请求并且DMA通道优先级为高时,dma_pl_h[x]为1,当DMA通道x接收到请求并且DMA通道优先级为超高时,dma_pl_vh[x]为1;
其中,主设备状态机处于读状态时的跳转过程包括:
将AHB主机传输控制信号信号赋值为2’b10,通过DMA通道对主设备读数据的有效字节进行控制,DMA作为AHB主机,将读地址信息发送到地址总线的AHB主机地址总线信号上,当DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从读状态跳转到错误状态;
将AHB主机传输控制信号信号赋值为2’b10,通过DMA通道对主设备读数据的有效字节进行控制,DMA作为AHB主机,将读地址信息发送到地址总线的AHB主机地址总线信号上;当DMA通道获取到AHB主机传输完成信号信号时,时钟上升沿计算出新的地址信息、新的计数器值和写回计数器有效信号,将写回源地址寄存器有效信号进行拉高,将上升沿从读状态跳转到写状态;
其中,主设备状态机处于写状态时的跳转过程包括:
将AHB主机传输控制信号信号赋值为2’b10,对AHB主机写控制信号信号进行拉高;将DMA通道作为AHB主机,将写地址信号发送到地址地址总线AHB主机地址总线上;当DMA通道到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将主设备状态机从写状态跳转到错误状态;
当DMA通道获取到AHB主机传输完成信号信号时,时钟上升沿计算新的读地址和写地址,对写回目的地址寄存器有效信号进行拉高,将主设备状态机从写状态跳转到写回数据状态;
其中,主设备状态机从写回数据状态跳转到最后状态的过程包括:
将DMA控制器作为AHB主机,将32’h0000_0000发送到地址总线AHB主机地址总线上;当DMA通道获取的AHB主机传输完成信号信号、时钟上升沿无请求,同时待传输次数不为0或为循环模式时,将主设备状态机跳转到等待请求状态,否则将主设备状态机跳转到最后状态;
其中,主设备状态机从最后状态跳转到结束状态的过程包括:
将dma通道的ahb主机状态机、写回源地址寄存器有效信号、写回目的地址寄存器有效信号拉高,将主设备状态机从最后状态跳转到结束状态;
其中,主设备状态机从结束状态跳转到空闲状态的过程包括:
当时钟上升沿处于结束状态时,对dma通道的ahb主机状态机拉高,DMA通道作为AHB主机,将32’h0000_0000发送到地址总线AHB主机地址总线上,当DMA通道获取到AHB主机传输完成信号信号时,将主设备状态机跳从结束状态跳转到空闲状态。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述方法包括:
所述DMA控制器包括若干个DMA通道;每个所述DMA通道内置有主设备状态机和主机控制模块,所述DMA控制器包括若干种状态;
每个所述DMA通道配置若干个不同的优先级;
根据优先级确定多个通道同时接收请求时的启动顺序;
完成一次传输后的仲裁器根据优先级从剩余通道进行选择。
2.根据权利要求1所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述DMA通道的传输过程包括:
所述DMA通道在优先级相同时,通道号越小DMA通道优先级越高;
多个通道同时请求,优先级最高的通道优先传输;所述通道传输在完成后,仲裁器在剩余挂起通道中选择优先级最高的通道启动传输;
所述DMA通道都内置主设备状态机保证传输;所述主设备状态机包含9个状态。
3.根据权利要求2所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机在9个状态之间跳转的过程包括:
当系统时钟上升沿复位信号有效时,将所有主设备状态机都跳转到空闲状态;所述主设备机处于空闲状态时,当DMA通道使能同时所述DMA通道待传输次数不为0,将所述主设备状态机从所述空闲状态跳转到开始状态;
所述主设备状态机处于开始状态时,所述时钟上升沿将所述DMA通道的寄存器进行驱动,当所述时钟上升沿存在软件请求同时所述DMA通道的所述待传输次数寄存器的值为0时,将所述软件请求赋值为1,对AHB主机总线访问请求信号进行拉高,所述主设备状态机从开始状态跳转到等待请求状态;
所述主设备状态机处于等待请求状态时,当有外设请求或有软件请求,对信号进行拉高;当所述时钟上升沿发生地址溢出或所述DMA通道获取到AHB主机传输响应信号信号为error时,对信号进行拉高,将所述主设备状态机从等待请求状态跳转到错误状态;当有外设请求或软件请求,同时检测到所述DMA通道被选中,将所述主设备状态机从等待请求状态跳转到读状态;
所述主设备状态机处于读状态时,对AHB主机传输控制信号进行赋值,将读地址信息发送到地址总线上;当所述DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将所述主设备状态机从读状态跳转到错误状态;当所述DMA通道获取到AHB主机传输完成信号信号时,所述时钟上升沿对数据进行计算,对信号进行拉高,将所述主设备状态机从读状态跳转到写状态;
所述主设备状态机处于写状态时,对所述AHB主机传输控制信号进行赋值,将所述读地址信息发送到所述地址总线上;对AHB主机写控制信号进行拉高;当所述DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将所述主设备状态机从写状态跳转到错误状态;当所述DMA通道获取到AHB主机传输完成信号信号时,将所述主设备状态机从写状态跳转到写回数据状态;
所述主设备状态机处于写回数据状态时,所述DMA通道将信号发送到地址总线,同时获取AHB主机传输完成信号信号,将所述主设备状态机从写回数据状态跳转到最后状态;
所述主设备状态机处于最后状态时,对信号进行拉高,将所述主设备状态机从最后状态跳转到结束状态;
所述主设备状态机处于错误状态时,DMA控制器进行中断处理,将所述主设备状态机从最后状态跳转到结束状态;
所述主设备状态机处于结束状态时,对信号进行拉高,将所述主设备状态机从结束状态跳转到空闲状态。
4.根据权利要求3所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机处于开始状态对所述DMA通道的寄存器进行驱动过程包括:
将所述DMA通道源地址寄存器的值驱动到读地址信息;将所述DMA通道待传输次数寄存器的值驱动到计数器,将所述计数器赋值为0;当所述时钟上升沿存在软件请求同时所述DMA通道的所述待传输次数和寄存器的值为0。
5.根据权利要求3所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机处于等待请求状态时的跳转过程包括:
当有外设请求时,对外设请求进行拉高,当有外设请求或者有软件请求,同时所述DMA通道使能,dma通道授权信号信号为低,对接收到请求的dma通道和所述dma通道的ahb主机状态机进行拉高;当所述时钟上升沿发生地址溢出,将dma传输地址溢出赋值为1,所述主设备状态机从等待请求状态跳转到错误状态;
当有外设请求或有软件请求,同时dma通道授权信号信号为高且无请求信号为高或dma通道授权信号信号为低且下一个被授权的dma通道和所有dma通道的ahb主机状态机都为高时,将所述主设备状态机从等待请求状态跳转到读状态。
6.根据权利要求3所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机处于读状态时的跳转过程包括:
将所述AHB主机传输控制信号信号赋值为2’b10,通过所述DMA通道对主设备读数据的有效字节进行控制,所述DMA作为AHB主机,将所述读地址信息发送到地址总线的AHB主机地址总线信号上,当所述DMA通道获取到AHB主机传输响应信号信号为error时,对dma传输出错进行拉高,将所述主设备状态机从所述读状态跳转到错误状态;
将所述AHB主机传输控制信号信号赋值为2’b10,通过所述DMA通道对主设备读数据的有效字节进行控制,所述DMA作为AHB主机,将所述读地址信息发送到地址总线的AHB主机地址总线信号上;当所述DMA通道获取到AHB主机传输完成信号信号时,所述时钟上升沿计算出新的地址信息、新的计数器值和写回计数器有效信号,将写回源地址寄存器有效信号进行拉高,将所述上升沿从所述读状态跳转到写状态。
7.根据权利要求3所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机处于写状态时的跳转过程包括:
将AHB主机传输控制信号信号赋值为2’b10,对AHB主机写控制信号信号进行拉高;将所述DMA通道作为AHB主机,将所述写地址信号发送到地址地址总线AHB主机地址总线上;当所述DMA通道到AHB主机传输响应信号信号为error时,对所述dma传输出错进行拉高,将所述主设备状态机从写状态跳转到错误状态;
当所述DMA通道获取到所述AHB主机传输完成信号信号时,所述时钟上升沿计算新的读地址和写地址,对所述写回目的地址寄存器有效信号进行拉高,将所述主设备状态机从写状态跳转到写回数据状态。
8.根据权利要求3所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机从写回数据状态跳转到最后状态的过程包括:
将所述DMA控制器作为AHB主机,将32’h0000_0000发送到地址总线AHB主机地址总线上;当所述DMA通道获取的AHB主机传输完成信号信号、时钟上升沿无请求,同时待传输次数不为0或为循环模式时,将所述主设备状态机跳转到等待请求状态,否则将所述主设备状态机跳转到最后状态。
9.根据权利要求3所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机从最后状态跳转到结束状态的过程包括:
将所述dma通道的ahb主机状态机、所述写回源地址寄存器有效信号、所述写回目的地址寄存器有效信号拉高,将所述主设备状态机从最后状态跳转到结束状态。
10.根据权利要求3所述的一种多通道DMA控制器的轮转处理请求方法,其特征在于,所述主设备状态机从结束状态跳转到空闲状态的过程包括:
当所述时钟上升沿处于结束状态时,对所述所述dma通道的ahb主机状态机拉高,所述DMA通道作为AHB主机,将32’h0000_0000发送到地址总线AHB主机地址总线上,当所述DMA通道获取到所述AHB主机传输完成信号信号时,将所述主设备状态机跳从结束状态跳转到空闲状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310171776.9A CN116185914A (zh) | 2023-02-17 | 2023-02-17 | 一种多通道dma控制器的轮转处理请求方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310171776.9A CN116185914A (zh) | 2023-02-17 | 2023-02-17 | 一种多通道dma控制器的轮转处理请求方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185914A true CN116185914A (zh) | 2023-05-30 |
Family
ID=86450383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310171776.9A Pending CN116185914A (zh) | 2023-02-17 | 2023-02-17 | 一种多通道dma控制器的轮转处理请求方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185914A (zh) |
-
2023
- 2023-02-17 CN CN202310171776.9A patent/CN116185914A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6393506B1 (en) | Virtual channel bus and system architecture | |
CN1327370C (zh) | 资源管理装置 | |
EP1899828B1 (en) | Device and method for arbitrating between direct memory access task requests | |
US6772237B2 (en) | Host controller interface descriptor fetching unit | |
EP1899826B1 (en) | Device and method for controlling an execution of a dma task | |
EP1899825B1 (en) | Device and method for controlling multiple dma tasks | |
JPH071495B2 (ja) | データ処理システム | |
US9798686B2 (en) | Slave side bus arbitration | |
CN105205020A (zh) | 对直接存储器存取通道请求进行判优 | |
KR20070058561A (ko) | 버스 액세스 철회를 갖는 데이터 프로세싱 시스템 | |
CN110716691B (zh) | 调度方法、装置、闪存设备和系统 | |
EP1899827B1 (en) | Device and method for executing a dma task | |
US8954632B2 (en) | System method for regulating an input/output interface by sampling during a time duration associated with I/O states | |
US8516167B2 (en) | Microcontroller system bus scheduling for multiport slave modules | |
US6804736B2 (en) | Bus access arbitration based on workload | |
USRE40261E1 (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
KR20070053310A (ko) | 버스 액세스 취소 기능을 갖는 데이터 처리 시스템 | |
CN117009266A (zh) | 一种握手协议总线仲裁模块及片上系统 | |
KR102360214B1 (ko) | 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법 | |
CN116185914A (zh) | 一种多通道dma控制器的轮转处理请求方法 | |
US8135878B1 (en) | Method and apparatus for improving throughput on a common bus | |
KR100633742B1 (ko) | 주변 장치로부터 데이터 전송 크기를 자동으로 갱신하는직접 메모리 액세스 제어 장치 및 방법 | |
JP2005165508A (ja) | ダイレクトメモリアクセスコントローラ | |
US6418491B1 (en) | Apparatus and method for controlling timing of transfer requests within a data processing apparatus | |
US7975086B1 (en) | Apparatus for real-time arbitration between masters and requestors and method for operating the same |
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 |