一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持数据在线重组的DMA访存方法及装置与流程

2022-11-14 15:53:17 来源:中国专利 TAG:

一种支持数据在线重组的dma访存方法及装置
技术领域
1.本发明涉及数据处理技术领域,特别是涉及一种支持数据在线重组的dma访存方法及装置。


背景技术:

2.随着科学技术的飞速发展,出现了面向不同应用领域、需要满足不同特定应用需求的专用处理器。这些应用课题通常包含大量的数据简单运算重组操作,如数据的求和、求最大/小值、位操作等操作。
3.近年来的处理器设计中,不再采用传统的多级片内缓存体系,转而采用结构更为简单高效的片上局部存储器机制:利用直接存储器访问dma直接将外部存储器中的数据搬移到片上局部存储器中;运算单元从局部存储器取出数据,进行格式转换至满足运算部件的加载要求后,再进行后续运算。例如中国专利发明专利cn101127018a公开了一种片上dma结构及其实现方法,片上dma结构包括dma寄存器组,优先级仲裁单元,dma数据缓冲寄存器,中断设置和接收单元,加/减1控制逻辑,片上dma用于存储器与存储器之间数据传输的通道数据传输的宽度为32位,由于有其独立的内部地址和数据总线支持,所以可以实现cpu与dma控制器的操作并发进行,且dma传输速率与cpu相匹配;独立的地址加/减1模块控制源与目的地址寄存器和传输个数的自动增减;dma内部有两种优先级判断模式,该dma实现方法可广泛地应用于高性能处理器的设计中,结构简单、可靠。
4.然而,上述片上dma访存方式仍然存在以下缺点:现有处理器芯片的dma传输机制与数据重组过程各是两个独立的过程和逻辑,每个片上局部存储器均需要提供数据重组功能模块,数据转置过程需要从片上局部存储器读出原始数据,占用额外的处理时间,不仅影响流水性能,而且消耗一定的功耗。
5.因此,无论对于访存效率还是降低功耗而言,进行合理高效的数据在线重组的dma访存方法都是非常有必要的。


技术实现要素:

6.本发明的目的是提供一种支持数据在线重组的dma访存方法及装置,无需在片上局部存储器处添加数据重组功能模块,可以支持数据在线重组,使得数据重组过程对运算核心透明,为程序员编程提供便利性和灵活性,提高数据访存效率,降低数据格式转变的实现代价和功耗。
7.根据本发明的第一方面,提出一种支持数据在线重组的dma访存方法,包括:dma引擎收到dma传输指令时,判断dma传输指令中是否有数据重组指示,若是则获取dma传输指令中的数据传输方向以及数据重组参数信息;dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至传输方向上游存储;dma引擎收到上游存储发来的访问响应数据时,将响应数据存放于dma引擎内部的
数据缓冲中;当数据缓冲收齐本次dma传输指令中的所有数据时,对数据缓冲中的数据按照dma传输指令中的数据重组参数进行重组,并将重组后的格式转发给传输方向下游存储。
8.进一步的,数据传输方向,包括:从片上局部存储器传输至外部存储器和从外部存储器传输至片上局部存储器;当数据传输方向为从片上局部存储器传输至外部存储器时,传输方向上游存储为片上局部存储器,传输方向下游存储为外部存储器;当数据传输方向为从外部存储器传输至片上局部存储器时,传输方向上游存储为外部存储器,传输方向下游存储为片上局部存储器。
9.进一步的,dma传输指令由存放有的片上局部存储器处理器核心发送而来。
10.进一步的,数据重组参数包括:数据重组数量、数据重组类型以及数据重组规则。
11.进一步的,当传输方向上游存储为外部存储器时:dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至外部存储器,访问请求数量为数据重组数量,每一个访问请求取一个cache行数据;dma引擎收到外部存储器发来的访问响应数据时,每个响应返回一个cache行数据,将响应数据按照cache行数据的规则进行存放于dma引擎内部的数据缓冲中。
12.进一步的,当传输方向上游存储为外部存储器时:当数据缓冲中存放的响应数据数量等于访问请求数量时,数据缓冲收齐本次dma传输指令中的所有数据。
13.进一步的,当传输方向上游存储为外部存储器时,对数据缓冲中的数据按照dma传输指令中的数据重组参数进行重组,并将重组后的格式转发给传输方向下游存储,具体为:对数据缓冲中的数据按照dma传输指令的数据重组参数中的数据重组数量和数据重组规则进行格式重组转换;生成新的格式数据;以单播和/或广播的形式,发送给至少一个片上局部存储器。
14.根据本发明的第二方面,提供了一种支持数据在线重组的dma访存装置,包括:dma引擎;预处理模块:用于在dma引擎收到dma传输指令时,判断dma传输指令中是否有数据重组指示,并且在有数据重组指示时,获取dma传输指令中的数据传输方向以及数据重组参数信息;访问请求发送模块:用于dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至传输方向上游存储;缓存模块:用于在dma引擎收到上游存储发来的访问响应数据时,将响应数据存放于dma引擎内部的数据缓冲中;重组转换模块:用于当数据缓冲收齐本次dma传输指令中的所有数据时,对数据缓冲中的数据按照dma传输指令中的数据重组参数进行重组;转发模块:用于将重组后的格式转发给传输方向下游存储。
15.根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储
器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项的所述方法步骤。
16.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项的所述方法步骤。
17.本发明的有益效果为:本发明提供了一种支持数据在线重组的dma访存方法及装置,无需在片上局部存储器处添加数据重组功能模块,可以支持数据在线重组,使得数据重组过程对运算核心透明,为程序员编程提供便利性和灵活性,提高数据访存效率,降低数据格式转变的实现代价和功耗。
附图说明
18.并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。
19.图1为本发明实施例的一种支持数据在线重组的dma访存方法的流程图;图2为本发明实施例的一种支持数据在线重组的dma访存装置的模块连接示意图。
具体实施方式
20.为了更清楚的说明本发明实施例和现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创在性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。另,设计方位的属于仅表示各部件间的相对位置关系,而不是绝对位置关系。
21.实施例一、如图1 所示,根据本发明的第一方面,提出一种支持数据在线重组的dma访存方法,包括:s101:dma引擎收到dma传输指令时,判断dma传输指令中是否有数据重组指示,若是则获取dma传输指令中的数据传输方向以及数据重组参数信息;在本发明实施例中,一般来说,dma传输指令由存放有的片上局部存储器处理器核心发送而来,发起主体是程序员或者传输程序,dma传输指令到达处理器核心,处理器核心发再将dma传输指令发送给dma引擎。
22.当dma传输指令到达dma引擎处时,dma引擎并不直接进行dma传输执行,而是先判断dma传输指令中是否有数据重组指示,如果有数据重组指示,那么还需要获取dma传输指令中的数据传输方向以及数据重组参数信息,并执行步骤s102;在本发明实施例中,数据传输方向,包括:从片上局部存储器传输至外部存储器和从外部存储器传输至片上局部存储器;dma数据传输的方向是从传输方向上游存储向传输方向下游存储方向进行传输。
23.那么,当数据传输方向为从片上局部存储器传输至外部存储器时,传输方向上游
存储为片上局部存储器,传输方向下游存储为外部存储器;反之,当数据传输方向为从外部存储器传输至片上局部存储器时,传输方向上游存储为外部存储器,传输方向下游存储为片上局部存储器。
24.在本发明实施例中,数据重组参数包括:数据重组数量、数据重组类型以及数据重组规则。
25.s102:dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至传输方向上游存储;在本发明实施例中,dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至传输方向上游存储,访问请求数量为数据重组数量,每一个访问请求取一个cache行数据。
26.当传输方向上游存储为外部存储器时:dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至外部存储器,访问请求数量为数据重组数量,每一个访问请求取一个cache行数据,访问外部存储器地址可以不连续。
27.s103:dma引擎收到上游存储发来的访问响应数据时,将响应数据存放于dma引擎内部的数据缓冲中;在本发明实施例中,dma引擎收到传输方向上游存储发来的访问响应数据时,每个响应返回一个cache行数据,将响应数据按照cache行数据的规则进行存放于dma引擎内部的数据缓冲中。
28.当传输方向上游存储为外部存储器时:dma引擎收到外部存储器发来的访问响应数据时,每个响应返回一个cache行数据,允许响应返回的顺序与请求发出顺序不一致,将响应数据按照cache行数据的规则进行存放于dma引擎内部的数据缓冲中。
29.s104:当数据缓冲收齐本次dma传输指令中的所有数据时,对数据缓冲中的数据按照dma传输指令中的数据重组参数进行重组,并将重组后的格式转发给传输方向下游存储。
30.在本发明实施例中,当数据缓冲中存放的响应数据数量等于访问请求数量时,数据缓冲收齐本次dma传输指令中的所有数据。
31.在本发明实施例中,对数据缓冲中的数据按照dma传输指令中的数据重组参数进行重组,并将重组后的格式转发给传输方向下游存储,具体为:对数据缓冲中的数据按照dma传输指令的数据重组参数中的数据重组数量和数据重组规则进行格式重组转换;生成新的格式数据;以单播和/或广播的形式,发送给传输方向下游存储。
32.需要注意的是,执行步骤s101时,若是dma传输指令中没有数据重组指示,那么直接进行简单的dma数据传输,在执行步骤s104时,当数据缓冲收齐本次dma传输指令中的所有数据时,直接将所有数据转发给传输方向下游存储。
33.总之,当传输方向上游存储为外部存储器时:执行步骤s102时,dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至外部存储器,访问请求数量为数据重组数量,每一个访问请求取一个cache行数据;执行步骤s103时,dma引擎收到外部存储器发来的访问响应数据时,每个响应返回
一个cache行数据,将响应数据按照cache行数据的规则进行存放于dma引擎内部的数据缓冲中。
34.并且,在执行步骤s104时,当数据缓冲中存放的响应数据数量等于访问请求数量时,数据缓冲收齐本次dma传输指令中的所有数据,此时对数据缓冲中的数据按照dma传输指令的数据重组参数中的数据重组数量和数据重组规则进行格式重组转换;生成新的格式数据;以单播和/或广播的形式,发送给片上局部存储器。
35.此时,传输方向下游存储为片上局部存储器,而且新的格式数据可以同时发送给1个或多个片上局部存储器。
36.反之,当传输方向上游存储为片上局部存储器时:执行步骤s102时,dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至片上局部存储器,访问请求数量为数据重组数量,每一个访问请求取一个cache行数据;执行步骤s103时,dma引擎收到片上局部存储器发来的访问响应数据时,每个响应返回一个cache行数据,将响应数据按照cache行数据的规则进行存放于dma引擎内部的数据缓冲中。
37.并且,在执行步骤s104时,当数据缓冲中存放的响应数据数量等于访问请求数量时,数据缓冲收齐本次dma传输指令中的所有数据,此时对数据缓冲中的数据按照dma传输指令的数据重组参数中的数据重组数量和数据重组规则进行格式重组转换;生成新的格式数据,发送给外部存储器。
38.本发明提供了一种支持数据在线重组的dma访存方法及装置,无需在片上局部存储器处添加数据重组功能模块,可以支持数据在线重组,使得数据重组过程对运算核心透明,为程序员编程提供便利性和灵活性,提高数据访存效率,降低数据格式转变的实现代价和功耗。
39.实施例二、如图2所示,根据本发明的第二方面,提供了一种支持数据在线重组的dma访存装置,包括:dma引擎;预处理模块:用于在dma引擎收到dma传输指令时,判断dma传输指令中是否有数据重组指示,并且在有数据重组指示时,获取dma传输指令中的数据传输方向以及数据重组参数信息;访问请求发送模块:用于dma引擎将收到的dma指令解析并拆分为至少一个访问请求发送至传输方向上游存储;缓存模块:用于在dma引擎收到上游存储发来的访问响应数据时,将响应数据存放于dma引擎内部的数据缓冲中;重组转换模块:用于当数据缓冲收齐本次dma传输指令中的所有数据时,对数据缓冲中的数据按照dma传输指令中的数据重组参数进行重组;转发模块:用于将重组后的格式转发给传输方向下游存储。
40.可以理解的是,本发明实施例提供的装置均适用于实施例一所述的方法,各个模块的具体功能可参照上述方法流程,此处不再赘述。
41.实施例三、
根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一所述方法步骤。
42.该电子设备用于实现实施例一所述的方法,电子设备可以包括:至少一个中央处理器,至少一个网络接口,控制接口,存储器,至少一个通信总线。
43.其中,通信总线用于实现各组件之间的连接通信,信息交互。
44.其中,网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
45.其中,控制接口用于根据指令输出控制操作。
46.其中,中央处理器可以包括一个或者多个处理核心。中央处理器利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器内的指令、程序、代码集或指令集,以及调用存储在存储器内的数据,根据实施例一所述的方法执行终端的各种功能和处理数据。
47.其中,存储器可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器可用于存储指令、程序、代码、代码集或指令集。存储器可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述实施例一所述的方法等;存储数据区可存储上面各个方法实施例中涉及到的数据等。
48.本发明还有第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例一所述的方法。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、dvd、cd-rom、微型驱动器以及磁光盘、rom、ram、eprom、eeprom、dram、vram、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic),或适合于存储指令和/或数据的任何类型的媒介或设备。
49.本发明提供了一种支持数据在线重组的dma访存方法及装置,无需在片上局部存储器处添加数据重组功能模块,可以支持数据在线重组,使得数据重组过程对运算核心透明,为程序员编程提供便利性和灵活性,提高数据访存效率,降低数据格式转变的实现代价和功耗。
50.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
51.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
52.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间
的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
53.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
54.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
55.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-only memory, rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
56.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(read-only memory, rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
57.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包含一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
58.以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献