CN114490465A - 用于直接存储器访问的数据传输方法和装置 - Google Patents

用于直接存储器访问的数据传输方法和装置 Download PDF

Info

Publication number
CN114490465A
CN114490465A CN202111624405.9A CN202111624405A CN114490465A CN 114490465 A CN114490465 A CN 114490465A CN 202111624405 A CN202111624405 A CN 202111624405A CN 114490465 A CN114490465 A CN 114490465A
Authority
CN
China
Prior art keywords
data
descriptor
timing
indication signal
moved
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
Application number
CN202111624405.9A
Other languages
English (en)
Other versions
CN114490465B (zh
Inventor
李锐
冯奎景
严迪超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Eswin Computing Technology Co Ltd
Guangzhou Quanshengwei Information Technology Co Ltd
Original Assignee
Beijing Eswin Computing Technology Co Ltd
Guangzhou Quanshengwei Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Eswin Computing Technology Co Ltd, Guangzhou Quanshengwei Information Technology Co Ltd filed Critical Beijing Eswin Computing Technology Co Ltd
Priority to CN202111624405.9A priority Critical patent/CN114490465B/zh
Publication of CN114490465A publication Critical patent/CN114490465A/zh
Application granted granted Critical
Publication of CN114490465B publication Critical patent/CN114490465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

一种用于直接存储器访问的数据传输方法和装置。该数据传输方法包括:获取并解析要传输的目标数据的传输信息;启动硬件定时单元产生定时信息;基于传输信息通过总线获取目标数据;响应于目标数据到达直接存储器访问的时间位于基于定时信息的预定时间窗内,确定目标数据为时效数据且对目标数据进行处理。该数据传输方法可以减少CPU的参与,并以较少的硬件资源完成数据的定时搬运,从而可以实现DMA高精度定时传输数据。

Description

用于直接存储器访问的数据传输方法和装置
技术领域
本公开的实施例涉及一种用于直接存储器访问的数据传输方法和装置。
背景技术
DMA(Direct Memory Access,直接存储器访问)传输装置可以将数据从一个地址空间搬移到另外一个地址空间。当中央处理单元(Central Processing Unit,简称为CPU)初始化这个传输动作时,传输动作本身是由DMA传输装置来实行和完成,例如,可以由DMA传输装置移动一个外部内存的区块到芯片内部的内存区。这样的操作并没有让CPU工作拖延,反而可以被重新安排去处理其他的工作,因此,DMA传输装置对于高效能嵌入式系统算法和网络是很重要的。
发明内容
本公开至少一实施例提供一种用于直接存储器访问的数据传输方法,包括:获取并解析要传输的目标数据的传输信息;启动硬件定时单元产生定时信息;基于所述传输信息通过总线获取所述目标数据;响应于所述目标数据到达所述直接存储器访问的时间位于基于所述定时信息的预定时间窗内,确定所述目标数据为时效数据且对所述目标数据进行处理。
例如,在本公开至少一实施例提供的数据传输方法中,所述目标数据为数据链,所述数据链包括至少一个待搬移数据块;所述传输信息包括至少一个数据描述符和所述至少一个数据描述符的首地址;所述至少一个数据描述符与所述至少一个待搬移数据块一一对应,且配置为分别描述对应的待搬移数据块的信息;所述至少一个数据描述符的首地址是所述至少一个数据描述符中第一个数据描述符的起始地址。
例如,在本公开至少一实施例提供的数据传输方法中,每个所述数据描述符包括:起始指示信号、结束指示信号、类型指示信号、定时对齐指示信号、定时周期指示信号、窗长指示信号、窗偏移指示信号、数据块起始地址指示信号、数据块长度指示信号和下一个数据描述符的起始地址。
例如,在本公开至少一实施例提供的数据传输方法中,启动硬件定时单元产生定时信息,包括:响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,启动所述硬件定时单元产生基准帧频;基于所述基准帧频和所述数据描述符中的定时周期指示信号获取周期性指示信号作为所述定时信息。
例如,在本公开至少一实施例提供的数据传输方法中,启动硬件定时单元产生定时信息,包括:获取参考帧频周期信号;响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,基于所述参考帧频周期信号,产生基准帧频;基于所述基准帧频和所述数据描述符中的定时周期指示信号获取所述周期性指示信号。
例如,在本公开至少一实施例提供的数据传输方法中,所述周期性指示信号的周期是基于所述定时周期指示信号和所述硬件定时单元的工作频率确定的。
例如,在本公开至少一实施例提供的数据传输方法中,响应于所述数据描述符中的定时对齐指示信号,确定采用第一定时模式还是第二定时模式;所述第一定时模式包括:响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,产生基准帧频;基于所述基准帧频和所述数据描述符中的定时周期指示信号获取所述周期性指示信号;所述第二定时模式包括:获取参考帧频周期信号;响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,基于所述参考帧频周期信号,产生基准帧频;基于所述基准帧频和所述数据描述符中的定时周期指示信号获取所述周期性指示信号。
例如,在本公开至少一实施例提供的数据传输方法中,基于所述传输信息通过总线获取所述目标数据,包括:基于所述当前数据描述符中的数据块起始地址指示信号和数据块长度指示信号获取与所述当前数据描述符对应的当前待搬移数据块。
例如,在本公开至少一实施例提供的数据传输方法中,响应于所述目标数据到达所述直接存储器访问的时间位于基于所述定时信息的预定时间窗内,确定所述目标数据为时效数据且对所述目标数据进行处理,包括:基于所述定时信息和所述数据描述符中的窗长指示信号和窗偏移指示信号确定所述预定时间窗,其中,基于所述窗长指示信号确定所述预定时间窗的宽度,基于所述窗偏移指示信号确定所述预定时间窗相对于所述定时信息的偏移;响应于当前待搬移数据块到达所述直接存储器访问的时间位于所述预定时间窗内,确定所述当前待搬移数据块为时效数据,并搬移所述当前待搬移数据块;响应于所述当前待搬移数据块到达所述直接存储器访问的时间位于所述预定时间窗外,确定所述当前待搬移数据块为无效数据,并进行丢弃。
例如,本公开至少一实施例提供的数据传输方法还包括:响应于执行完所述当前待搬移数据块的搬移操作,基于当前数据描述符中包括的下一个数据描述符的起始地址进行下一个待搬移数据块的搬移。
例如,本公开至少一实施例提供的数据传输方法还包括:基于所述类型指示信号确定当前数据链的工作模式,其中,所述当前数据链的工作模式包括一次链、n次链、循环链,其中,n为大于1的整数。
例如,在本公开至少一实施例提供的数据传输方法中,所述至少一个数据描述符包括N个数据描述符,N为大于0的整数;所述第一个数据描述符中的起始指示信号为有效信号,所述第N个数据描述符中的结束指示信号为有效信号;所述第N个数据描述符中包括的下一个数据描述符的起始地址为首地址。
本公开至少一实施例还提供一种用于直接存储器访问的数据传输装置,包括:第一获取单元,配置为获取并解析要传输的目标数据的传输信息;定时单元,配置为启动硬件定时单元产生定时信息;第二获取单元,配置为基于所述传输信息通过总线获取所述目标数据;处理单元,配置为响应于所述目标数据到达所述直接存储器访问的时间位于基于所述定时信息的预定时间窗内,确定所述目标数据为时效数据且对所述目标数据进行处理。
例如,在本公开至少一实施例提供的数据传输装置中,所述目标数据为数据链,所述数据链包括至少一个待搬移数据块;所述传输信息包括至少一个数据描述符和所述至少一个数据描述符的首地址;所述至少一个数据描述符与所述至少一个待搬移数据块一一对应,且配置为分别描述对应的待搬移数据块的信息;所述至少一个数据描述符的首地址是所述至少一个数据描述符中第一个数据描述符的起始地址。
本公开至少一实施例还提供一种电子装置,包括本公开任一实施例提供的数据传输装置。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
图1为本公开至少一实施例提供的一种系统架构的示意图;
图2A为本公开至少一实施例提供的一种数据传输方法的一个示例的流程图;
图2B为本公开至少一实施例提供的一种数据描述符的格式的一个示例的示意图;
图2C为本公开至少一实施例提供的一种数据链的形成机制的示意图;
图3为本公开至少一实施例提供的一种一个数据描述符和一个待搬移数据块的对应关系的示意图;
图4A为本公开至少一实施例提供的一种定时信息的确定方法的流程图;
图4B为本公开至少一实施例提供的另一种定时信息的确定方法的流程图
图5A为本公开至少一实施例提供的一种第一定时模式和第二定时模式的确定方法的示意图;
图5B为本公开至少一实施例提供的一种时间窗的示意图;
图5C为本公开至少一实施例提供的一种数据传输方法的系统流程图;
图6为本公开至少一实施例提供的一种时间窗判断方法的流程图;
图7为本公开至少一实施例提供的一种数据传输装置的示意图;
图8为本公开至少一实施例提供的一种电子装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在基于AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)的SoC(System on Chip,系统级芯片)中,对于大带宽、高速率数据的搬移,DMA发挥着重要的作用,能够大幅降低中央处理器(CPU)的负荷,充分利用AMBA总线的优点,使得系统可以更加高效的运行。然而,对于某些节点间的数据搬运需要按照定时方式,例如链路的一些控制指令,需要在指定的时间范围内发送出去。由于DMA仅能完成数据的搬移,本身不带定时功能,因此需要CPU参与,按照软件定时发送给DMA相关的控制信号,即DMA的传输工作于软件定时下,这一方面会占用太多的CPU资源,特别是对于多通道DMA传输时,需要多套软件定时。另外一方面,需要DMA实时响应CPU的指令,这对DMA处理也有了较高的要求。因此,当前的DMA技术存在的以下技术问题:为实现DMA定时搬运数据,需要消耗大量CPU资源;当前的DMA技术无法实现高精度定时传输数据;当前的DMA技术传输形式固定单一,无法实现多种传输形式混合传输。
本公开至少一实施例提供一种用于直接存储器访问的数据传输方法,包括:获取要传输的目标数据的传输信息;启动硬件定时模块产生定时信息;基于传输信息通过总线获取目标数据;响应于目标数据到达直接存储器访问的时间位于基于定时信息的预定时间窗内,确定目标数据为时效数据且对目标数据进行处理。
本公开至少一实施例还提供一种对应于上述用于直接存储器访问的数据传输方法的数据传输装置。
本公开的实施例提供的数据传输方法可以减少CPU的参与,并以较少的硬件资源完成数据的定时搬运,,从而可以实现DMA高精度定时传输数据。
下面结合附图对本公开的实施例及其一些示例进行详细说明。
本公开至少一实施例提供一种用于直接存储器访问(DMA)的数据传输方法,例如,可以应用于基于AMBA的SOC系统,该系统的具体架构可参见图1。例如,如图1所示,该系统架构可以包括多个CPU、多个内存和多个外设,例如,多个CPU、多个内存和多个外设之间可以通过总线协议AHB(Advanced High Performance Bus,高级高性能总线)/AXI(AdvancedExtensible Interface)进行交互传输,且其之间的数据的搬移例如可以通过DMA控制实现。例如,外设1、外设n可以是外部缓存单元,还可以是I/O(Input/Output,输入输出)接口或URAT接口(Universal Asynchronous Receiver/Transmitter,通用串行数据总线)等,内存1、内存n可以是高速大带宽RAM(Random Access Memory,随机存取存储器)、系统内存等,本公开的实施例对此不作限制。
图2A为本公开至少一实施例提供的一种数据传输方法的一个示例的流程图。例如,该数据传输方法可以以软件、硬件、固件或其任意组合的方式实现,由例如手机、平板电脑、笔记本电脑、桌面电脑、网络服务器等设备中的DMA或其他电路加载并执行,从而可以减少CPU的参与,并以较少的硬件资源完成数据的定时搬运,从而可以实现DMA高精度定时传输数据。
例如,该数据传输方法可以应用于具有计算功能的任何电子设备,例如可以为手机、笔记本电脑、平板电脑、台式计算机、网络服务器等,本公开的实施例对此不作限制。例如,在一些示例中,该电子设备可以包括DMA传输装置和中央处理单元(CentralProcessing Unit,CPU)或图形处理单元(Graphics Processing Unit,GPU)等具有具有数据处理能力和/或指令执行能力的其它形式的处理单元、存储单元等,以通过运行代码或指令的方式实现本公开实施例提供的数据传输方法。
例如,本公开实施例提供的用于直接存储器访问的数据传输方法支持多链并行传输,即每一条数据链相互独立传输,下面以对单条数据链实施该数据传输方法为例进行详细描述。
如图2A所示,该数据传输方法包括步骤S110至步骤S140。
步骤S110:获取并解析要传输的目标数据的传输信息。
步骤S120:启动硬件定时单元产生定时信息。
步骤S130:基于传输信息通过总线获取目标数据。
步骤S140:响应于目标数据到达直接存储器访问的时间位于基于定时信息的预定时间窗内,确定目标数据为时效数据且对目标数据进行处理。
对于步骤S110,例如,目标数据为数据链,数据链包括至少一个待搬移数据块DB(Data Block)。
例如,目标数据的传输信息包括至少一个数据描述符和至少一个数据描述符的首地址。例如,该至少一个数据描述符的首地址是至少一个数据描述符中第一个数据描述符的起始地址。
例如,至少一个数据描述符与至少一个待搬移数据块一一对应,且配置为分别描述对应的待搬移数据块的信息。
图2B为本公开至少一实施例提供的一种数据描述符的格式的一个示例的示意图。
例如,如图2B所示,每个数据描述符BD(Buffer Description)长度为128bit(比特),例如包括:起始指示信号FF(1bit)、结束指示信号LF(1bit)、类型指示信号TYPE(5bit)、定时对齐指示信号TA(1bit)、定时周期指示信号TP(16bit)、窗长指示信号WL(16bit)、窗偏移指示信号WO(8bit)、数据块起始地址指示信号DBA(32bit)、数据块长度指示信号DBL(16bit)和下一个数据描述符的起始地址BDNA(32bit)。
例如,在一些示例中,至少一个数据描述符包括N个数据描述符,N为大于0的整数;例如,第一个数据描述符中的起始指示信号FF为有效信号,其余数据描述符中的起始指示信号FF为无效信号,表示数据块的搬移从该第一个数据描述符开始工作;第N个数据描述符(即最后一个数据描述符)中的结束指示信号LF为有效信号,其余数据描述符中的结束指示信号LF为无效信号,表示数据块的搬移待该第N个数据描述符结束。
例如,第N个数据描述符中包括的下一个数据描述符的起始地址BDNA为首地址。
例如,在一些示例中,该方法还包括:在步骤S110之前,通过中央处理器为目标数据配置对应的传输信息。即CPU预先为每一条数据链分配好传输信息,例如,预先分配好每一条链的数据描述符,以在对应链进行数据搬移时,通过电路或其他模块获取并解析该链的数据描述符,从而可以获取到该链对应的目标数据。
例如,在该示例中,在进行数据传输之前,CPU需要预先在系统缓存(例如,图1所示的内存1至内存n,当然还可以是其他缓存单元,本公开的实施例对此不作限制)中配置数据描述符BD、待搬移数据块、BD首地址缓存队列。例如,BD首地址缓存队列用于存储每一条数据链对应的至少一个数据描述符的首地址,即至少一个数据描述符中的第一个数据描述符的起始地址。
例如,一个数据描述符BD和一个待搬移数据块DB为一一对应关系,即可通过数据描述符获取到待搬移数据块的信息,主要信息包括:待搬移数据块在系统缓存中的起始地址和长度,即数据块起始地址指示信号DBA和数据块长度指示信号DBL。
图3为本公开至少一实施例提供的一种一个数据描述符和一个待搬移数据块的对应关系的示意图。例如,如图3所示,根据数据描述符中的数据块起始地址指示信号DBA确定待搬移数据块DB的起始地址,根据数据块长度指示信号DBL确定待搬移数据块DB长度,从而可以确定该数据描述符对应该DB内的待搬移数据。
例如,当需要开始定时搬移时,CPU配置链开始指示信息,根据链指示信息从BD首地址缓存队列中获取对应链的起始地址,即对应链的第一个数据描述符的起始地址。如图2C所示,由于每个数据描述符的长度为128bit,所以根据当前链的第一个数据描述符的起始地址和长度即可获取当前链的第一个数据描述符(即首BD),下一个数据描述符(即第二数据描述符BD2)的起始地址则根据当前数据描述符中的下一个数据描述符的起始地址BDNA确定,以此类推,可以获取到最后一个数据描述符的信息,最后一个数据描述符中BDNA为第一个数据描述符的起始地址,即BD首地址缓存队列中存储的该数据链的至少一个数据描述符的首地址。由此,该条数据链可以通过该数据描述符表示出来。
在本公开的实施例中,通过上述软化(软件)配置的数据描述符(既可以通过编码实现的数据描述符)实现数据链的表示,可以实现DMA传输形式的灵活配置。
对于步骤S120,例如,硬件定时单元可以是本领域内的定时电路(数字电路、模拟电路或二者的任意组合),例如可以设置在CPU中或可以单独设置,定时电路的具体设计和工作原理可参见本领域的描述,本公开的实施例不限制硬件定时单元的具体类型、结构等,因此在此不再赘述。
例如,当获取到当前链的至少一个数据描述符的首地址并进行解析后,启动当前链的硬件定时单元,用于产生后续用于处理待搬移数据块的定时信息。
例如,硬件定时单元产生周期性指示信号作为定时信息,用于协助窗判断技术判断当前待搬移数据块是否在定时范围内到达并决定是否进行传输。
图4A为本公开至少一实施例提供的一种定时信息的确定方法的流程图;图4B为本公开至少一实施例提供的另一种定时信息的确定方法的流程图。也就是说,图4A和图4B为图2A中所示的步骤S120的一些示例的流程图。
例如,图4A为第一定时模式,图4B为第二定时模式。图5A为本公开至少一实施例提供的一种第一定时模式和第二定时模式的确定方法的示意图。下面,结合图4A、4B和5A对本公开至少一实施例提供的定时信息的确定方法进行详细地介绍。
例如,在图4A所示的示例中,该确定方法包括步骤S1211至步骤S1212。
步骤S1211:响应于获取到并解析至少一个数据描述符中的第一个数据描述符,启动硬件定时单元产生基准帧频。
例如,如图5A所示,当第一个BD到达后,即当DMA获取到第一个数据描述符(即首BD)后,硬件定时单元自振产生一个信号base_fr,作为基准帧频,用于产生周期性指示信号。
步骤S1212:基于基准帧频和数据描述符中的定时周期指示信号获取周期性指示信号作为定时信息。
例如,在图4B所示的示例中,该确定方法包括步骤S1221至步骤S1223。
步骤S1221:获取参考帧频周期信号。
例如,获取如图5A所示的参考帧频周期refer_fr作为参考帧频周期信号。
步骤S1222:响应于获取到并解析至少一个数据描述符中的第一个数据描述符,基于参考帧频周期信号,产生基准帧频。
例如,如图5A所示,当第一个BD到达后,即当DMA获取到第一个数据描述符(即首BD)后,当参考帧频周期信号到来时(即如图5A中的虚线L1所示的时刻),选择第一个参考帧频信号为信号base_fr,并作为基准帧频,用于产生周期性指示信号。
步骤S1223:基于基准帧频和数据描述符中的定时周期指示信号获取周期性指示信号。
例如,周期性指示信号的周期是基于定时周期指示信号TP和硬件定时单元的工作频率确定的。
例如,两次定时之间的时间(即周期)为:TP*Ts,其中Ts为硬件定时单元的工作频率的倒数;定时周期指示信号TP表示个数。
例如,响应于数据描述符中的定时对齐指示信号,确定采用第一定时模式还是第二定时模式。例如,第一定时模式和第二定时模式的选择是根据第一个数据描述符中的定时对齐指示信号TA决定的,例如,当TA为0时,表示当前为第一定时模式,当TA为1时,表示当前为第二定时模式。
在本公开的实施例中,通过硬件定时实现DMA高精度定时传输数据,可以降低CPU资源开销;且通过软化(软件)配置定时周期,可以实现单条数据链的独立定时。
对于步骤S130,例如,基于传输信息通过总线获取所述目标数据,包括:解析当前数据描述符,获取当前待搬移数据块对应的参数(数据块起始地址指示信号DBA和数据块长度指示信号DBL),并基于当前数据描述符中的数据块起始地址指示信号DBA和数据块长度指示信号DBL获取与当前数据描述符对应的当前待搬移数据块DB,例如,获取根据图3所示的待搬移数据块DB中存储的数据。
对于步骤S140,例如,当待搬移数据块DB到达DMA时,进行时间窗判断。
图5B为本公开至少一实施例提供的一种时间窗的示意图,图6为本公开至少一实施例提供的一种时间窗判断方法的流程图。也就是说,图6为图2A中所示的步骤S140的一些示例的流程图。下面,结合图5B和图6对本公开至少一实施例提供的时间窗判断方法进行详细地介绍。
例如,在图6所示的示例中,该确定方法包括步骤S141至步骤S143。
步骤S141:基于定时信息和数据描述符中的窗长指示信号和窗偏移指示信号确定预定时间窗。
例如,如图5B所示,基于窗长指示信号WL确定预定时间窗的宽度,基于窗偏移指示信号WO确定预定时间窗相对于定时信息的偏移。
例如,当WO小于0时,当前待搬移数据块对应的时间窗位于与当前待搬移数据块对应的周期性指示信号的左边;当WO等于0时,当前待搬移数据块对应的时间窗的起点从与当前待搬移数据块对应的周期性指示信号开始;当WO大于0时,当前待搬移数据块对应的时间窗位于与当前待搬移数据块对应的周期性指示信号的右边。
步骤S142:响应于当前待搬移数据块到达直接存储器访问的时间位于预定时间窗内,确定当前待搬移数据块为时效数据,并搬移当前待搬移数据块。
步骤S143:响应于当前待搬移数据块到达直接存储器访问的时间位于预定时间窗外,确定当前待搬移数据块为无效数据,并进行丢弃。
例如,当当前待搬移数据块DB到达DMA的时间落在时间窗内,则认为该DB为时效数据块,并进行传输;否则认为该DB不为时效数据块,进行丢弃。
在本公开的实施例中,通过时间窗判断技术可以实现对超时数据丢弃处理,从而提高传输效率。
例如,在一些示例中,该数据传输方法还包括:基于所述类型指示信号TYPE确定当前数据链的工作模式。例如,当前数据链的工作模式包括一次链、n次链、循环链,其中,n为大于1的整数。
例如,一次链是指数据描述符BD从首BD(第一个数据描述符)开始执行到末BD(最后一个数据描述符)后,结束BD处理,即停止待搬移数据块DB的搬移;下次执行必须通过CPU给出指示才可以开始。
例如,n次链是指数据描述符BD从首BD开始执行到末BD,共循环执行n次,其中n决定于类型指示信号TYPE。
例如,循环链是指数据描述符BD从首BD开始执行到末BD,再循环到首BD开始执行,当CPU给出停止指示后结束搬移。
例如,在一些示例中,该数据传输方法还包括:响应于执行完当前待搬移数据块的搬移操作,基于当前数据描述符中包括的下一个数据描述符的起始地址BDNA进行下一个待搬移数据块的搬移。
本公开上述实施例仅以单链操作过程为例进行介绍,对于多链或者多通道场景,由于每条链为独立配置,因此该方法也可以很好的支持多链或多通道场景,并且通过多链独立配置,还可以实现DMA多通道混合传输。
图5C为本公开至少一实施例提供的一种数据传输方法的系统流程图。例如,如图5C所示,该数据传输方法包括:
步骤S210:CPU预先分配好数据描述符BD,建立数据块描述符和传输数据间的关系。
例如,在一些示例中,在进行数据传输之前,CPU需要预先在系统缓存中配置各条数据链的数据描述符BD、待搬移数据块、BD首地址缓存队列。例如,BD首地址缓存队列用于存储每一条数据链对应的至少一个数据描述符的首地址,即至少一个数据描述符中的第一个数据描述符的起始地址。
例如,一个数据描述符BD和一个待搬移数据块DB为一一对应关系,即可通过数据描述符获取到待搬移数据块的信息,主要信息包括:待搬移数据块在系统缓存中的起始地址和长度,即数据块起始地址指示信号DBA和数据块长度指示信号DBL。
步骤S220:对BD进行解析。
例如,对数据描述符BD进行解析,获取到数据描述符BD中的包含的信息。例如,如图2B所示,每个数据描述符BD长度为128bit(比特),解析后得到的数据描述符BD的信息包括:起始指示信号FF(1bit)、结束指示信号LF(1bit)、类型指示信号TYPE(5bit)、定时对齐指示信号TA(1bit)、定时周期指示信号TP(16bit)、窗长指示信号WL(16bit)、窗偏移指示信号WO(8bit)、数据块起始地址指示信号DBA(32bit)、数据块长度指示信号DBL(16bit)和下一个数据描述符的起始地址BDNA(32bit)。
步骤S230:根据BD解析信息产生硬件定时。
例如,具体定时原理可参考图4A-图5A的描述。
例如,根据BD解析信息中定时周期指示信号TP获取定时信息。例如,周期性指示信号的周期是基于定时周期指示信号TP和硬件定时单元的工作频率确定的。
例如,两次定时之间的时间(即周期)为:TP*Ts,其中Ts为硬件定时单元的工作频率的倒数;定时周期指示信号TP表示个数。
步骤S240:根据BD解析信息搬运数据。
例如,解析得到当前数据描述符BD,获取当前数据描述符BD中包括的当前待搬移数据块对应的参数(数据块起始地址指示信号DBA和数据块长度指示信号DBL),并基于当前数据描述符中的数据块起始地址指示信号DBA和数据块长度指示信号DBL获取与当前数据描述符对应的当前待搬移数据块DB,例如,获取根据图3所示的待搬移数据块DB中存储的数据。
步骤S250:根据硬件定时单元及BD解析信息产生时间窗。
例如,如图5B所示,基于BD解析信息中的窗长指示信号WL确定预定时间窗的宽度,基于窗偏移指示信号WO确定预定时间窗相对于定时信息的偏移。
例如,当WO小于0时,当前待搬移数据块对应的时间窗位于与当前待搬移数据块对应的周期性指示信号的左边;当WO等于0时,当前待搬移数据块对应的时间窗的起点从与当前待搬移数据块对应的周期性指示信号开始;当WO大于0时,当前待搬移数据块对应的时间窗位于与当前待搬移数据块对应的周期性指示信号的右边。
步骤S260:根据时间窗判断数据块是否超时。
例如,当当前待搬移数据块DB到达DMA的时间落在时间窗内,则认为该DB为时效数据块,并进行传输;否则认为该DB不为时效数据块,进行丢弃。
步骤S270:根据时间窗的判断结果发送/丢弃数据块中的数据。
需要说明的是,在本公开的实施例中,本公开上述各个实施例提供的数据传输方法的流程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行。虽然上文描述的数据传输方法的流程包括特定顺序出现的多个操作,但是应该清楚地了解,多个操作的顺序并不受限制。上文描述的数据传输方法可以执行一次,也可以按照预定条件执行多次。
本公开上述实施例提供的数据传输方法,可以减少CPU的参与,并以较少的硬件资源完成数据的定时搬运。具体地,可以通过硬件定时实现DMA高精度定时传输数据,降低CPU资源开销;通过软化(软件)配置定时周期,实现单链的独立定时;通过时间窗判断技术实现对超时数据丢弃处理;通过软化(软件)配置的BD链实现DMA传输形式的灵活配置;通过多链独立配置,实现DMA多通道混合传输。
图7为本公开至少一实施例提供的一种数据传输装置的示意框图。例如,在图7所示的示例中,该数据传输装置100包括第一获取单元110、定时单元120、第二获取单元130和处理单元140。例如,这些单元可以通过硬件(例如电路)模块等实现,例如,通过DMA传输装置中的电路结构实现,本公开的实施例对此不作限制。以下是实施例与此相同,不再赘述。
例如,在一些示例中,该数据传输装置为DMA传输装置,本公开的实施例对此不作限制。
第一获取单元110,配置为获取并解析要传输的目标数据的传输信息。例如,目标数据为数据链,数据链包括至少一个待搬移数据块DB(Data Block)。例如,目标数据的传输信息包括至少一个数据描述符和至少一个数据描述符的首地址。例如,该至少一个数据描述符的首地址是至少一个数据描述符中第一个数据描述符的起始地址。例如,至少一个数据描述符与至少一个待搬移数据块一一对应,且配置为分别描述对应的待搬移数据块的信息。例如,如图2B所示,每个数据描述符BD(Buffer Description)长度为128bit(比特),例如包括:起始指示信号FF(1bit)、结束指示信号LF(1bit)、类型指示信号TYPE(5bit)、定时对齐指示信号TA(1bit)、定时周期指示信号TP(16bit)、窗长指示信号WL(16bit)、窗偏移指示信号WO(8bit)、数据块起始地址指示信号DBA(32bit)、数据块长度指示信号DBL(16bit)和下一个数据描述符的起始地址BDNA(32bit)。例如,该第一获取单元110可以实现步骤S110,其具体实现方法可以参考步骤S110的相关描述,在此不再赘述。
定时单元120,配置为启动硬件定时单元产生定时信息;例如,该定时单元120可以实现步骤S120,其具体实现方法可以参考步骤S120的相关描述,在此不再赘述。
第二获取单元130,配置为基于传输信息通过总线获取目标数据。例如,该第二获取单元130可以实现步骤S130,其具体实现方法可以参考步骤S130的相关描述,在此不再赘述。
处理单元140,配置为响应于目标数据到达直接存储器访问的时间位于基于定时信息的预定时间窗内,确定目标数据为时效数据且对目标数据进行处理。例如,该处理单元140可以实现步骤S140,其具体实现方法可以参考步骤S140的相关描述,在此不再赘述。
需要注意的是,在本公开的实施例中,该数据传输装置100可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
关于数据传输装置100的技术效果可以参考本公开的实施例中提供的数据传输方法的技术效果,这里不再赘述。
本公开至少一实施例还提供一种电子装置。图8为本公开至少一实施例提供的一种电子装置的示意图。例如,如图8所示,该电子装置1包括数据传输装置100,该数据传输装置100例如为本公开任一实施例提供的数据传输装置100。
例如,该电子装置1可以为包括DMA传输装置的手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的电子装置及硬件的组合,本公开的实施例对此不作限制。
需要说明的是,为表示清楚、简洁,本公开实施例并没有给出该电子装置1的全部组成单元。为实现电子装置的必要功能,本领域技术人员可以根据具体需要提供、设置其他未示出的组成单元,本公开的实施例对此不作限制。
关于电子装置1的相关描述和技术效果可以参考本公开的实施例中提供的分频器的相关描述和技术效果,这里不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。

Claims (15)

1.一种用于直接存储器访问的数据传输方法,包括:
获取并解析要传输的目标数据的传输信息;
启动硬件定时单元产生定时信息;
基于所述传输信息通过总线获取所述目标数据;
响应于所述目标数据到达所述直接存储器访问的时间位于基于所述定时信息的预定时间窗内,确定所述目标数据为时效数据且对所述目标数据进行处理。
2.根据权利要求1所述的数据传输方法,其中,所述目标数据为数据链,所述数据链包括至少一个待搬移数据块;
所述传输信息包括至少一个数据描述符和所述至少一个数据描述符的首地址,
其中,所述至少一个数据描述符与所述至少一个待搬移数据块一一对应,且配置为分别描述对应的待搬移数据块的信息;
所述至少一个数据描述符的首地址是所述至少一个数据描述符中第一个数据描述符的起始地址。
3.根据权利要求2所述的数据传输方法,其中,每个所述数据描述符包括:起始指示信号、结束指示信号、类型指示信号、定时对齐指示信号、定时周期指示信号、窗长指示信号、窗偏移指示信号、数据块起始地址指示信号、数据块长度指示信号和下一个数据描述符的起始地址。
4.根据权利要求3所述的数据传输方法,其中,启动硬件定时单元产生定时信息,包括:
响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,启动所述硬件定时单元产生基准帧频;
基于所述基准帧频和所述数据描述符中的定时周期指示信号获取周期性指示信号作为所述定时信息。
5.根据权利要求3所述的数据传输方法,其中,启动硬件定时单元产生定时信息,包括:
获取参考帧频周期信号;
响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,基于所述参考帧频周期信号,产生基准帧频;
基于所述基准帧频和所述数据描述符中的定时周期指示信号获取所述周期性指示信号。
6.根据权利要求4或5所述的数据传输方法,其中,所述周期性指示信号的周期是基于所述定时周期指示信号和所述硬件定时单元的工作频率确定的。
7.根据权利要求2所述的数据传输方法,其中,响应于所述数据描述符中的定时对齐指示信号,确定采用第一定时模式还是第二定时模式,
其中,所述第一定时模式包括:
响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,产生基准帧频;
基于所述基准帧频和所述数据描述符中的定时周期指示信号获取所述周期性指示信号;
所述第二定时模式包括:
获取参考帧频周期信号;
响应于获取到并解析所述至少一个数据描述符中的第一个数据描述符,基于所述参考帧频周期信号,产生基准帧频;
基于所述基准帧频和所述数据描述符中的定时周期指示信号获取所述周期性指示信号。
8.根据权利要求3所述的数据传输方法,其中,基于所述传输信息通过总线获取所述目标数据,包括:
基于所述当前数据描述符中的数据块起始地址指示信号和数据块长度指示信号获取与所述当前数据描述符对应的当前待搬移数据块。
9.根据权利要求3所述的数据传输方法,其中,响应于所述目标数据到达所述直接存储器访问的时间位于基于所述定时信息的预定时间窗内,确定所述目标数据为时效数据且对所述目标数据进行处理,包括:
基于所述定时信息和所述数据描述符中的窗长指示信号和窗偏移指示信号确定所述预定时间窗,其中,基于所述窗长指示信号确定所述预定时间窗的宽度,基于所述窗偏移指示信号确定所述预定时间窗相对于所述定时信息的偏移;
响应于当前待搬移数据块到达所述直接存储器访问的时间位于所述预定时间窗内,确定所述当前待搬移数据块为时效数据,并搬移所述当前待搬移数据块;
响应于所述当前待搬移数据块到达所述直接存储器访问的时间位于所述预定时间窗外,确定所述当前待搬移数据块为无效数据,并进行丢弃。
10.根据权利要求9所述的数据传输方法,还包括:
响应于执行完所述当前待搬移数据块的搬移操作,基于当前数据描述符中包括的下一个数据描述符的起始地址进行下一个待搬移数据块的搬移。
11.根据权利要求3所述的数据传输方法,还包括:
基于所述类型指示信号确定当前数据链的工作模式,其中,所述当前数据链的工作模式包括一次链、n次链、循环链,其中,n为大于1的整数。
12.根据权利要求3所述的数据传输方法,其中,所述至少一个数据描述符包括N个数据描述符,N为大于0的整数;
其中,所述第一个数据描述符中的起始指示信号为有效信号,所述第N个数据描述符中的结束指示信号为有效信号;
其中,所述第N个数据描述符中包括的下一个数据描述符的起始地址为首地址。
13.一种用于直接存储器访问的数据传输装置,包括:
第一获取单元,配置为获取并解析要传输的目标数据的传输信息;
定时单元,配置为启动硬件定时单元产生定时信息;
第二获取单元,配置为基于所述传输信息通过总线获取所述目标数据;
处理单元,配置为响应于所述目标数据到达所述直接存储器访问的时间位于基于所述定时信息的预定时间窗内,确定所述目标数据为时效数据且对所述目标数据进行处理。
14.根据权利要求13所述的数据传输装置,其中,所述目标数据为数据链,所述数据链包括至少一个待搬移数据块;
所述传输信息包括至少一个数据描述符和所述至少一个数据描述符的首地址;
其中,所述至少一个数据描述符与所述至少一个待搬移数据块一一对应,且配置为分别描述对应的待搬移数据块的信息;
所述至少一个数据描述符的首地址是所述至少一个数据描述符中第一个数据描述符的起始地址。
15.一种电子装置,包括权利要求13或14所述的数据传输装置。
CN202111624405.9A 2021-12-28 2021-12-28 用于直接存储器访问的数据传输方法和装置 Active CN114490465B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111624405.9A CN114490465B (zh) 2021-12-28 2021-12-28 用于直接存储器访问的数据传输方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111624405.9A CN114490465B (zh) 2021-12-28 2021-12-28 用于直接存储器访问的数据传输方法和装置

Publications (2)

Publication Number Publication Date
CN114490465A true CN114490465A (zh) 2022-05-13
CN114490465B CN114490465B (zh) 2024-04-26

Family

ID=81495728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111624405.9A Active CN114490465B (zh) 2021-12-28 2021-12-28 用于直接存储器访问的数据传输方法和装置

Country Status (1)

Country Link
CN (1) CN114490465B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212612A1 (en) * 2005-03-15 2006-09-21 Kabushiki Kaisha Toshiba I/O controller, signal processing system, and method of transferring data
US20120331187A1 (en) * 2011-06-24 2012-12-27 Kun Xu Bandwidth control for a direct memory access unit within a data processing system
WO2016127552A1 (zh) * 2015-02-12 2016-08-18 深圳市中兴微电子技术有限公司 一种直接内存存取dma控制器及数据传输的方法
CN111190842A (zh) * 2019-12-30 2020-05-22 Oppo广东移动通信有限公司 直接存储器访问、处理器、电子设备和数据搬移方法
CN111563216A (zh) * 2020-07-16 2020-08-21 平安国际智慧城市科技股份有限公司 本地数据缓存方法、装置及相关设备
CN112199216A (zh) * 2020-10-21 2021-01-08 哲库科技(北京)有限公司 接口配置方法和装置、调制解调芯片及存储介质
CN112463077A (zh) * 2020-12-16 2021-03-09 北京云宽志业网络技术有限公司 数据块处理方法、装置、设备及存储介质
CN112799981A (zh) * 2021-01-26 2021-05-14 展讯半导体(成都)有限公司 数据传输控制方法、功能机及相关产品
CN112947857A (zh) * 2021-02-25 2021-06-11 山东英信计算机技术有限公司 一种数据搬移方法、装置、设备及计算机可读存储介质
CN113612567A (zh) * 2021-10-11 2021-11-05 树根互联股份有限公司 设备多传感器采集数据的对齐方法、装置和电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212612A1 (en) * 2005-03-15 2006-09-21 Kabushiki Kaisha Toshiba I/O controller, signal processing system, and method of transferring data
US20120331187A1 (en) * 2011-06-24 2012-12-27 Kun Xu Bandwidth control for a direct memory access unit within a data processing system
WO2016127552A1 (zh) * 2015-02-12 2016-08-18 深圳市中兴微电子技术有限公司 一种直接内存存取dma控制器及数据传输的方法
CN111190842A (zh) * 2019-12-30 2020-05-22 Oppo广东移动通信有限公司 直接存储器访问、处理器、电子设备和数据搬移方法
CN111563216A (zh) * 2020-07-16 2020-08-21 平安国际智慧城市科技股份有限公司 本地数据缓存方法、装置及相关设备
CN112199216A (zh) * 2020-10-21 2021-01-08 哲库科技(北京)有限公司 接口配置方法和装置、调制解调芯片及存储介质
CN112463077A (zh) * 2020-12-16 2021-03-09 北京云宽志业网络技术有限公司 数据块处理方法、装置、设备及存储介质
CN112799981A (zh) * 2021-01-26 2021-05-14 展讯半导体(成都)有限公司 数据传输控制方法、功能机及相关产品
CN112947857A (zh) * 2021-02-25 2021-06-11 山东英信计算机技术有限公司 一种数据搬移方法、装置、设备及计算机可读存储介质
CN113612567A (zh) * 2021-10-11 2021-11-05 树根互联股份有限公司 设备多传感器采集数据的对齐方法、装置和电子设备

Also Published As

Publication number Publication date
CN114490465B (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
CN106951388B (zh) 一种基于PCIe的DMA数据传输方法及系统
US10007628B2 (en) Dynamically adjustable multi-line bus shared by multi-protocol devices
CN110471872B (zh) 一种基于zynq芯片实现m-lvds总线数据交互系统和方法
US6954806B2 (en) Data transfer apparatus and method
US7913021B2 (en) Scalable bus structure
CN101937412B (zh) 一种片上系统及其访问方法
CN109739786B (zh) 一种dma控制器和异构加速系统
US11671678B2 (en) Method and device, equipment, and storage medium for data processing
US11102445B1 (en) Extending support of Audio Video Transport Protocol by data encapsulation
CN110297612B (zh) 一种mipi数据处理芯片及方法
GB2423165A (en) Host controller interface for packet-based timeshared bus
CN117539807A (zh) 一种数据传输方法、相关设备及存储介质
CN112506676A (zh) 进程间的数据传输方法、计算机设备和存储介质
CN114490465A (zh) 用于直接存储器访问的数据传输方法和装置
CN111405534A (zh) 信息传输方法、第一终端及计算机存储介质
CN102446157B (zh) 基于阵列结构的处理器核心的通信方法及通信装置
CN113900985B (zh) Io和spi复用芯片、复用辅助芯片和数据交互方法
CN113609041A (zh) 一种数据传输方法及系统
CN107807888B (zh) 一种用于soc架构的数据预取系统及其方法
CN110856195A (zh) 射频组件的配置系统及方法
CN117573588B (zh) 并行apb协议转串行scom协议的装置、方法及芯片
CN118349286B (zh) 处理器、指令处理的装置、电子设备以及指令处理方法
CN115357534B (zh) 一种高速多路lvds采集系统及存储介质
CN109474707B (zh) 基于串口协议的二层协议设计及数据传输方法及系统
CN118656319A (zh) 读写操作的执行方法、装置、存储介质和电子设备

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 101, 1st Floor, Building 3, Yard 18, Kechuang 14th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 101102

Applicant after: Beijing ESWIN Computing Technology Co.,Ltd.

Applicant after: GUANGZHOU QUANSHENGWEI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 101102 No. 2179, floor 2, building D, building 33, No. 99, Kechuang 14th Street, Beijing Economic and Technological Development Zone (centralized office area)

Applicant before: Beijing yisiwei Computing Technology Co.,Ltd.

Applicant before: GUANGZHOU QUANSHENGWEI INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 101102 Room 101, 1/F, Building 3, No. 18 Courtyard, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Applicant after: Beijing ESWIN Computing Technology Co.,Ltd.

Applicant after: GUANGZHOU QUANSHENGWEI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: Room 101, 1st Floor, Building 3, Yard 18, Kechuang 14th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 101102

Applicant before: Beijing ESWIN Computing Technology Co.,Ltd.

Applicant before: GUANGZHOU QUANSHENGWEI INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant