CN111258937A - 一种环式链表dma的传输方法及系统 - Google Patents
一种环式链表dma的传输方法及系统 Download PDFInfo
- Publication number
- CN111258937A CN111258937A CN202010076391.0A CN202010076391A CN111258937A CN 111258937 A CN111258937 A CN 111258937A CN 202010076391 A CN202010076391 A CN 202010076391A CN 111258937 A CN111258937 A CN 111258937A
- Authority
- CN
- China
- Prior art keywords
- state
- dma
- transmission
- flag bit
- cpu
- 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
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
-
- 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/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/24—Interrupt
-
- 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)
- Bus Control (AREA)
Abstract
本发明公开了一种环式链表DMA的传输方法及系统,涉及数据传输及存储领域,该方法包括:CPU在内存中设置表项链接地址首尾相连的环式链表,并为环式链表的每个表项配置传输状态标志位后开启DMA。DMA控制器循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互。CPU在接收到DMA中断时处理中断信息,在处理完中断信息或空闲时循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态以和DMA控制器进行信息交互。本发明能减少上报中断次数,从而减少了CPU响应中断的时间,降低了CPU的资源占用。
Description
技术领域
本发明涉及数据传输及存储领域,具体涉及一种环式链表DMA 的传输方法及系统。
背景技术
网络设备对数据传输速率的要求日益增高,利用DMA(Direct Memory Access,直接内存存取)来传输数据有效提高了CPU的效率。但是DMA的配置和中断处理依然会占用CPU资源。
目前DMA有两种实现方式,一种是块式DMA,一种是链式 DMA。块式DMA可将多个数据包一次传输,减少中断处理。但CPU 处理数据时需将数据包从整块数据中解析出来并拷贝到相应缓存,增加了CPU的工作。链式DMA可将不同数据包的传输地址记录在链表中,DMA通过读取链表信息进行传输,当链表表项全部处理完后才上报中断。若数据包连续,链表表项越多DMA效率越高,若数据包不连续,表项过多会增加等待链表完成时间,降低CPU对数据的处理效率。如果链表表项较少,中断会增多,中断处理将会占用大量 CPU资源。
以上两种DMA的实现方式各有利弊,其应用于不同场景中时,无法根据实际数据传输的情况灵活调整,无法平衡CPU处理速度与网络传输速度不同导致的无效等待和中断处理。使得在短包,大数据流量的应用场景下,完成DMA数据传输和数据包处理时,CPU资源占用率会较高。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种环式链表DMA的传输方法,其能减少上报中断次数,从而减少了CPU响应中断的时间,降低了CPU的资源占用。
为达到以上目的,本发明采取的技术方案是:
一种环式链表DMA的传输方法,该方法包括以下步骤:
CPU在内存中设置表项链接地址首尾相连的环式链表,并为环式链表的每个表项配置传输状态标志位后开启直接内存存取DMA;
DMA控制器循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互;
CPU在接收到DMA中断时处理中断信息,在处理完中断信息或空闲时循环读取每个表项的传输状态标志位的状态,以确定是离开 DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态以和DMA控制器进行信息交互。
在上述技术方案的基础上,所述传输状态标志位包括第一状态和第二状态,所述CPU将环式链表的每个表项的传输状态标志位初始化为第一状态后开启DMA。
在上述技术方案的基础上,DMA控制器循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行 DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互,具体包括:
S21.DMA控制器判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态,若是第二状态,则执行步骤S22,若是第一状态,则执行步骤S23;
S22.DMA控制器判断CPU未及时处理DMA传输的数据,上报中断至CPU;
S23.DMA控制器进行DMA传输,且将传输状态标志位从第一状态更改为第二状态以通知CPU传输完成,并读取下一表项的传输状态标志位,返回步骤S21。
在上述技术方案的基础上,当DMA控制器判断读取的一表项的传输状态标志位的状态是第二状态时,设定一延时时间,在延时时间过后再次读取该表项的传输状态标志位,若仍是第二状态,则上报中断至CPU。
在上述技术方案的基础上,CPU循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态以和DMA 控制器进行信息交互,具体包括:
S31.CPU判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态,若是第一状态,则执行步骤S32,若是第二状态,则执行步骤S33;
S32.CPU判断DMA控制器未传输完对应的数据,离开DMA 任务,并在预设时间后返回;
S33.CPU处理DMA控制器传输的数据,且将传输状态标志位从第二状态更改为第一状态以告知DMA控制器可传输数据,并读取下一表项的传输状态标志位,返回步骤S31。
本发明的另一个目的在于提供一种环式链表DMA的传输系统,其能减少上报中断次数,从而减少了CPU响应中断的时间,降低了 CPU的资源占用。
为达到以上目的,本发明采取的技术方案是:
一种环式链表DMA的传输系统,包括CPU和DMA控制器;
所述CPU用于在内存中设置表项链接地址首尾相连的环式链表,并为环式链表的每个表项配置传输状态标志位后开启直接内存存取DMA;
所述DMA控制器用于循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互;
且所述CPU还用于在接收到DMA中断时处理中断信息,在处理完中断信息或空闲时循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态。
在上述技术方案的基础上,所述传输状态标志位包括第一状态和第二状态,所述CPU将环式链表的每个表项的传输状态标志位初始化为第一状态后开启DMA。
在上述技术方案的基础上,
所述DMA控制器用于判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态;
若是第二状态,所述DMA控制器判断所述CPU未及时处理 DMA传输的数据,上报中断至所述CPU;
若是第一状态,所述DMA控制器进行DMA传输,且将传输状态标志位从第一状态更改为第二状态以通知CPU传输完成,并读取下一表项的传输状态标志位,再次判断下一表项传输状态标志位的状态,以循环判断环式链表的每个表项。
在上述技术方案的基础上,当所述DMA控制器判断读取的一表项的传输状态标志位的状态是第二状态时,设定一延时时间,在延时时间过后再次读取该表项的传输状态标志位,若仍是第二状态,则上报中断至CPU。
在上述技术方案的基础上,
所述CPU用于判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态;
若是第一状态,所述CPU判断所述DMA控制器未传输完对应的数据,离开DMA任务,并在预设时间后返回;
若是第二状态,所述CPU处理所述DMA控制器传输的数据,且将传输状态标志位从第二状态更改为第一状态以告知DMA控制器可传输数据,并读取下一表项的传输状态标志位,以循环判断环式链表的每个表项。
与现有技术相比,本发明的优点在于:
本发明的环式链表DMA的传输方法,其利用带有传输状态标志位的环式链表,使得DMA控制器可自主从环式链表中循环取走配置信息,并通过传输状态标志位告知CPU传输完成的信息。CPU在处理完传输数据后接着读取下一个链表状态标志位,并根据标志位状态配置新的表项。避免了DMA控制器每完成一次传输就上报中断,大大减少了上报中断次数,使得CPU不会频繁被DMA中断所干扰,减少了CPU响应中断的时间,大大降低了CPU的资源占用。
附图说明
图1为本发明实施例中环式链表DMA的传输方法的流程图;
图2为本发明实施例中环式链表的结构示意图;
图3为图1中步骤S2的流程图;
图4为图1中步骤S3的流程图;
图5为本发明实施例中环式链表DMA的传输系统的结构框图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种环式链表DMA的传输方法,该方法包括以下步骤:
S1.CPU在内存中设置表项链接地址首尾相连的环式链表,并为环式链表的每个表项配置传输状态标志位后开启直接内存存取 DMA。
具体而言,本实施例中的环式链表包括多个表项,表项的个数可以根据实际情况来进行配置,参见图2所示,表项链接地址首尾相连成环,在每个表项的内容用于配置DMA传输特性,其内容包括数据传输源地址、数据传输目的地址,数据传输长度,下一个表项的链接地址,传输状态标志位。
在本实施例中,传输状态标志位包括第一状态和第二状态,处于第一状态时,传输状态标志位被配置为1,处于第二状态时,传输状态标志位被配置为0。
具体而言,CPU将DMA传输配置信息填入表项时,将传输状态标志位配置为1,表示该表项待进行传输处理。当DMA控制器完成该表项的数据传输后,将标志位配置为0,表示该表项已传输完成。
在本实施例中,CPU将环式链表的每个表项的传输状态标志位初始化为第一状态后开启DMA,也就是说每个表项都待进行传输处理。
S2.DMA控制器循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互。
具体而言,参见图3所示,步骤S2包括:
S21.DMA控制器判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态,若是第二状态,则执行步骤S22,若是第一状态,则执行步骤S23;
S22.DMA控制器判断CPU未及时处理DMA传输的数据,上报中断至CPU;
S23.DMA控制器进行DMA传输,且将传输状态标志位从第一状态更改为第二状态以通知CPU传输完成,并读取下一表项的传输状态标志位,返回步骤S21。
在本实施例中,DMA控制器上报中断至CPU是极为罕见的,因为,DMA控制器在完成每一次DMA传输后,并不会上报中断,而是将传输状态标志位从第一状态更改为第二状态,即将传输状态标志位从1更改为0,来告诉CPU当前表项已经传输完毕,随后DMA控制器就会处理下一个表项,由于环式链表包括多个表项,只要DMA 控制器还有待处理的表项,就能够容忍CPU暂时不处理已经传输完的数据。只有在DMA控制器完成了一个循环,即将环式链表的所有表项均处理完成时,此时DMA控制器回到起点,读取该表项的传输状态标志位,若仍然为0,则表示CPU并没有处理该表项中的数据,在这种情况下,DMA控制器才会上报中断至CPU,通知CPU来进行处理。
由此可知,本实施例中的传输方法可以大大减少上报中断的次数,为尽可能提升CPU效率,在内存应用允许的范围内,CPU应根据系统数据传输速率和自身处理能力,配置合理的环式链表的表项数量。这样,当CPU在其它任务中无暇处理DMA传输数据时,DMA 控制器会自动读取环式链表的表项配置信息进行数据传输,表项数越多,能容忍CPU处理其它事务的时间越长,但也会占用更多的内存资源,可以通过具体的情况来找到一个较好的平衡点。
作为一个较好的实施方式,为了进一步减少上报中断的次数,当 DMA控制器判断读取的一表项的传输状态标志位的状态是第二状态时,设定一延时时间,在延时时间过后再次读取该表项的传输状态标志位,若仍是第二状态,则上报中断至CPU。也就是说,在DMA控制器在处理完所有表项的传输后,仍然会给CPU一定的处理时间,只有在延时时间过后,才会上报中断至CPU。
优选地,本实施例中的CPU将环式链表的首地址写入DMA控制器,DMA控制器获取环式链表首地址后,从首地址对应的表项开始处理,比如可以从第一个表项开始处理。
S3.CPU在接收到DMA中断时处理中断信息,在处理完中断信息或空闲时循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态以和DMA控制器进行信息交互。
具体而言,参见图4所示,步骤S3包括:
S31.CPU判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态,若是第一状态,则执行步骤S32,若是第二状态,则执行步骤S33;
S32.CPU判断DMA控制器未传输完对应的数据,离开DMA 任务,并在预设时间后返回;
在本实施例中,CPU可以是经过一个任务调度时间后返回。
S33.CPU处理DMA控制器传输的数据,且将传输状态标志位从第二状态更改为第一状态以告知DMA控制器可传输数据,并读取下一表项的传输状态标志位,返回步骤S31。
下面对CPU和DMA控制器之间的信息交互做出进一步介绍:
CPU在内存中分配一个链表存储空间,并配置好表项数为N的环式链表,启动DMA。
DMA被启动后,从环式链表的起始位置读取表项1的传输的配置信息,开始等待业务接口(源地址)的数据包,当数据包准备好后, DMA控制器将数据包传输至系统内存(目的地址)。传输完成后, DMA控制器将环式链表对应表项的传输状态标志位置为0。
DMA控制器根据表项1记录的表项2的链接地址去读取表项2 的配置信息,开始第二次数据包传输,当第二次传输完成后将表项2 的传输标志位置为0,然后依次顺序取走后续表项信息进行数据传输。
CPU启动DMA后,查看表项1的传输状态标志位,如果为0,则开始处理传输完成的数据,并将更新的传输信息配置到表项1中,并将状态标识位置为1。依次顺序读取下一个表项,直至某一表项状态标识位为1时,CPU离开处理其它事务。
DMA控制器读取表项N的信息并完成传输后,表项N的下一个表项链接地址会指向表项1。DMA控制器读取表项1状态标志位,如果为1,进行上述传输;如果标志位为0,则代表CPU还未来得及处理已经传输完成的数据,此时DMA将上报中断,告知CPU需处理DMA数据。
可以理解的是,若DMA数据传输速率和CPU处理数据的速率一致,DMA控制器读取表项传输状态标识为1,就会取走表项信息,持续传输数据,由于链表是环式的,DMA控制器可连续读取表项信息,不会产生中断,从而减轻了CPU的资源消耗,提高了CPU的利用率。
若CPU无法及时处理传输完成的数据,DMA控制器读取表项传输状态标识为0时,DMA控制器停止传输数据,上报中断。若CPU 处理传输数据较快而网络传送包的速率较慢,当CPU读到环式链表表项的状态标志位为1时,会结束此次DMA任务,而去执行其它任务,不会浪费等待时间。
本发明实施例提供一种环式链表DMA的传输系统,其包括CPU 和DMA控制器。
其中,CPU用于在内存中设置表项链接地址首尾相连的环式链表,并为环式链表的每个表项配置传输状态标志位后开启直接内存存取DMA。
所述DMA控制器用于循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互。
且所述CPU还用于在接收到DMA中断时处理中断信息,在处理完中断信息或空闲时循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态。
进一步地,所述传输状态标志位包括第一状态和第二状态,所述 CPU将环式链表的每个表项的传输状态标志位初始化为第一状态后开启DMA。
进一步地,所述DMA控制器用于判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态;
若是第二状态,所述DMA控制器判断所述CPU未及时处理 DMA传输的数据,上报中断至所述CPU;
若是第一状态,所述DMA控制器进行DMA传输,且将传输状态标志位从第一状态更改为第二状态以通知CPU传输完成,并读取下一表项的传输状态标志位,再次判断下一表项传输状态标志位的状态,以循环判断环式链表的每个表项。
进一步地,当所述DMA控制器判断读取的一表项的传输状态标志位的状态是第二状态时,设定一延时时间,在延时时间过后再次读取该表项的传输状态标志位,若仍是第二状态,则上报中断至CPU。
进一步地,所述CPU用于判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态;
若是第一状态,所述CPU判断所述DMA控制器未传输完对应的数据,离开DMA任务,并在预设时间后返回;
若是第二状态,所述CPU处理所述DMA控制器传输的数据,且将传输状态标志位从第二状态更改为第一状态以告知DMA控制器可传输数据,并读取下一表项的传输状态标志位,以循环判断环式链表的每个表项。
参见图5所示,作为一个优选地实施方式,本实施例中的DMA 控制器包括链表解析单元、寄存器配置单元和数据传输单元。
链表解析单元根据表项存放的位置依次读取环式链表表项信息,将表项信息按照规定的映射关系分解为数据传输源地址、数据传输目的地址,数据传输长度,下一个表项的链接地址,传输状态标志位的寄存器值,对寄存器配置单元进行配置,并开启一次DMA传输。当 DMA传输完成后,链表解析单元将该传输信息对应的链表表项中的传输状态标志位配置为0,结束此次DMA传输,并根据下一个表项的链接地址读取表项配置信息,开启再一次DMA传输。
寄存器配置单元用于为DMA传输提供配置信息,将链表解析单元的配置信息保存下来并对数据传输单元进行配置。保存数据传输单元的状态信息,以便链表解析单元和CPU查询。
数据传输单元,用于根据寄存器配置单元的配置信息将业务接口的网络数据包传输到内存中的目的地址,或者将内存中源地址的数据包传输到业务接口,并发送出去。数据传输单元可根据系统实际要求调整传输的颗粒度,以保证数据包的传输效率。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种环式链表DMA的传输方法,其特征在于,该方法包括以下步骤:
CPU在内存中设置表项链接地址首尾相连的环式链表,并为环式链表的每个表项配置传输状态标志位后开启直接内存存取DMA;
DMA控制器循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互;
CPU在接收到DMA中断时处理中断信息,在处理完中断信息或空闲时循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态以和DMA控制器进行信息交互。
2.如权利要求1所述的环式链表DMA的传输方法,其特征在于:所述传输状态标志位包括第一状态和第二状态,所述CPU将环式链表的每个表项的传输状态标志位初始化为第一状态后开启DMA。
3.如权利要求2所述的环式链表DMA的传输方法,其特征在于:DMA控制器循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互,具体包括:
S21.DMA控制器判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态,若是第二状态,则执行步骤S22,若是第一状态,则执行步骤S23;
S22.DMA控制器判断CPU未及时处理DMA传输的数据,上报中断至CPU;
S23.DMA控制器进行DMA传输,且将传输状态标志位从第一状态更改为第二状态以通知CPU传输完成,并读取下一表项的传输状态标志位,返回步骤S21。
4.如权利要求3所述的环式链表DMA的传输方法,其特征在于:当DMA控制器判断读取的一表项的传输状态标志位的状态是第二状态时,设定一延时时间,在延时时间过后再次读取该表项的传输状态标志位,若仍是第二状态,则上报中断至CPU。
5.如权利要求2所述的环式链表DMA的传输方法,其特征在于:CPU循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态以和DMA控制器进行信息交互,具体包括:
S31.CPU判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态,若是第一状态,则执行步骤S32,若是第二状态,则执行步骤S33;
S32.CPU判断DMA控制器未传输完对应的数据,离开DMA任务,并在预设时间后返回;
S33.CPU处理DMA控制器传输的数据,且将传输状态标志位从第二状态更改为第一状态以告知DMA控制器可传输数据,并读取下一表项的传输状态标志位,返回步骤S31。
6.一种环式链表DMA的传输系统,其特征在于,包括CPU和DMA控制器;
所述CPU用于在内存中设置表项链接地址首尾相连的环式链表,并为环式链表的每个表项配置传输状态标志位后开启直接内存存取DMA;
所述DMA控制器用于循环读取每个表项的传输状态标志位的状态,以确定是上报DMA中断至CPU,还是进行DMA传输,并更改传输状态标志位的状态以和CPU进行信息交互;
且所述CPU还用于在接收到DMA中断时处理中断信息,在处理完中断信息或空闲时循环读取每个表项的传输状态标志位的状态,以确定是离开DMA任务,并在预设时间后返回,还是处理DMA传输的数据,并更改传输状态标志位的状态。
7.如权利要求6所述的环式链表DMA的传输系统,其特征在于:所述传输状态标志位包括第一状态和第二状态,所述CPU将环式链表的每个表项的传输状态标志位初始化为第一状态后开启DMA。
8.如权利要求7所述的环式链表DMA的传输系统,其特征在于:
所述DMA控制器用于判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态;
若是第二状态,所述DMA控制器判断所述CPU未及时处理DMA传输的数据,上报中断至所述CPU;
若是第一状态,所述DMA控制器进行DMA传输,且将传输状态标志位从第一状态更改为第二状态以通知CPU传输完成,并读取下一表项的传输状态标志位,再次判断下一表项传输状态标志位的状态,以循环判断环式链表的每个表项。
9.如权利要求8所述的环式链表DMA的传输系统,其特征在于:当所述DMA控制器判断读取的一表项的传输状态标志位的状态是第二状态时,设定一延时时间,在延时时间过后再次读取该表项的传输状态标志位,若仍是第二状态,则上报中断至CPU。
10.如权利要求7所述的环式链表DMA的传输系统,其特征在于:
所述CPU用于判断读取的一表项的传输状态标志位的状态是第一状态还是第二状态;
若是第一状态,所述CPU判断所述DMA控制器未传输完对应的数据,离开DMA任务,并在预设时间后返回;
若是第二状态,所述CPU处理所述DMA控制器传输的数据,且将传输状态标志位从第二状态更改为第一状态以告知DMA控制器可传输数据,并读取下一表项的传输状态标志位,以循环判断环式链表的每个表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076391.0A CN111258937B (zh) | 2020-01-23 | 2020-01-23 | 一种环式链表dma的传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076391.0A CN111258937B (zh) | 2020-01-23 | 2020-01-23 | 一种环式链表dma的传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258937A true CN111258937A (zh) | 2020-06-09 |
CN111258937B CN111258937B (zh) | 2021-08-03 |
Family
ID=70949157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010076391.0A Active CN111258937B (zh) | 2020-01-23 | 2020-01-23 | 一种环式链表dma的传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258937B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775524A (zh) * | 2023-06-19 | 2023-09-19 | 无锡摩芯半导体有限公司 | 一种dma链表模式的lli动态写入方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4637015A (en) * | 1985-07-29 | 1987-01-13 | Northern Telecom Limited | Packet transmission and reception via a shared DMA channel |
CN1797379A (zh) * | 2004-12-24 | 2006-07-05 | 华为技术有限公司 | 采用直接存储器访问方式进行数据传送的方法 |
CN101079015A (zh) * | 2007-06-28 | 2007-11-28 | 杭州华三通信技术有限公司 | 数据传送方法及系统 |
CN101158930A (zh) * | 2007-11-19 | 2008-04-09 | 中兴通讯股份有限公司 | 一种外部控制dma控制器的方法及其装置 |
US20090254771A1 (en) * | 2008-04-04 | 2009-10-08 | Advanced Micro Devices, Inc. | USB Power Conservation Method and Apparatus |
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN101556565A (zh) * | 2009-01-22 | 2009-10-14 | 杭州中天微系统有限公司 | 嵌入式处理器的片上高性能dma |
CN101625666A (zh) * | 2009-08-26 | 2010-01-13 | 福建星网锐捷网络有限公司 | 一种数据拷贝、参数信息写入的方法和系统 |
US20120221134A1 (en) * | 2009-11-18 | 2012-08-30 | Nec Corporation | Multicore system, control method of multicore system, and non-transitory readable medium storing program |
CN102880573A (zh) * | 2012-09-04 | 2013-01-16 | 武汉邮电科学研究院 | 一种基于Linux系统的串行RapidIo数据传输方法 |
US20130212341A1 (en) * | 2012-02-15 | 2013-08-15 | Microsoft Corporation | Mix buffers and command queues for audio blocks |
CN105138287A (zh) * | 2012-07-22 | 2015-12-09 | 北京忆恒创源科技有限公司 | 存储设备、中断控制方法以及供电时间测量方法 |
US20180276034A1 (en) * | 2015-10-08 | 2018-09-27 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit that interrupts processing core upon condition |
-
2020
- 2020-01-23 CN CN202010076391.0A patent/CN111258937B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4637015A (en) * | 1985-07-29 | 1987-01-13 | Northern Telecom Limited | Packet transmission and reception via a shared DMA channel |
CN1797379A (zh) * | 2004-12-24 | 2006-07-05 | 华为技术有限公司 | 采用直接存储器访问方式进行数据传送的方法 |
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN101079015A (zh) * | 2007-06-28 | 2007-11-28 | 杭州华三通信技术有限公司 | 数据传送方法及系统 |
CN101158930A (zh) * | 2007-11-19 | 2008-04-09 | 中兴通讯股份有限公司 | 一种外部控制dma控制器的方法及其装置 |
US20090254771A1 (en) * | 2008-04-04 | 2009-10-08 | Advanced Micro Devices, Inc. | USB Power Conservation Method and Apparatus |
CN101556565A (zh) * | 2009-01-22 | 2009-10-14 | 杭州中天微系统有限公司 | 嵌入式处理器的片上高性能dma |
CN101625666A (zh) * | 2009-08-26 | 2010-01-13 | 福建星网锐捷网络有限公司 | 一种数据拷贝、参数信息写入的方法和系统 |
US20120221134A1 (en) * | 2009-11-18 | 2012-08-30 | Nec Corporation | Multicore system, control method of multicore system, and non-transitory readable medium storing program |
US20130212341A1 (en) * | 2012-02-15 | 2013-08-15 | Microsoft Corporation | Mix buffers and command queues for audio blocks |
CN105138287A (zh) * | 2012-07-22 | 2015-12-09 | 北京忆恒创源科技有限公司 | 存储设备、中断控制方法以及供电时间测量方法 |
CN102880573A (zh) * | 2012-09-04 | 2013-01-16 | 武汉邮电科学研究院 | 一种基于Linux系统的串行RapidIo数据传输方法 |
US20180276034A1 (en) * | 2015-10-08 | 2018-09-27 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit that interrupts processing core upon condition |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775524A (zh) * | 2023-06-19 | 2023-09-19 | 无锡摩芯半导体有限公司 | 一种dma链表模式的lli动态写入方法 |
CN116775524B (zh) * | 2023-06-19 | 2024-02-02 | 无锡摩芯半导体有限公司 | 一种dma链表模式的lli动态写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111258937B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2011157026A1 (zh) | 音频传输的实现方法及移动终端 | |
CN109547162B (zh) | 基于两套单向边界的数据通信方法 | |
KR20220129100A (ko) | 메모리 액세스 기술 및 컴퓨터 시스템 | |
CN111404931B (zh) | 一种基于持久性内存的远程数据传输方法 | |
CN112261142B (zh) | 一种rdma网络的数据重传方法、装置及fpga | |
WO2022037176A1 (zh) | 核间通信方法、装置、电子组件以及电子设备 | |
CN112711550A (zh) | Dma自动配置模块和片上系统soc | |
CN111258937B (zh) | 一种环式链表dma的传输方法及系统 | |
WO2014079308A1 (zh) | 一种时隙资源占用处理方法及装置 | |
CN114513472A (zh) | 网络拥塞控制方法及装置 | |
CN101452427A (zh) | 一种dma数据传输系统及方法和一种中央处理器 | |
WO2023231723A1 (zh) | 流媒体数据处理方法及系统 | |
CN114095901A (zh) | 通信数据处理方法及装置 | |
JP2020088517A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
CN111131081A (zh) | 一种支持多进程的高性能单向传输的方法和装置 | |
CN113992609B (zh) | 一种处理多链路业务数据乱序的方法及系统 | |
CN109391929A (zh) | 低功耗蓝牙数据传输方法及电子设备 | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
CN112491620B (zh) | 一种基于srio的多通道数据传输控制器及调整方法 | |
CN111190840A (zh) | 基于现场可编程门阵列控制的多方中央处理器通信架构 | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
CN114268670A (zh) | 基于时间触发的以太网异步消息处理系统及方法 | |
JPH11298513A (ja) | データ伝送システム | |
CN113518082B (zh) | 一种消息处理方法、电子设备及存储介质 | |
CN115687200B (zh) | 基于FPGA应用于EPA的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 |