CN116756071B - 数据传输方法、装置、设备、存储介质和计算机程序产品 - Google Patents
数据传输方法、装置、设备、存储介质和计算机程序产品 Download PDFInfo
- Publication number
- CN116756071B CN116756071B CN202311051396.8A CN202311051396A CN116756071B CN 116756071 B CN116756071 B CN 116756071B CN 202311051396 A CN202311051396 A CN 202311051396A CN 116756071 B CN116756071 B CN 116756071B
- Authority
- CN
- China
- Prior art keywords
- data
- target transmission
- identification information
- effective
- sequentially
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 463
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000004590 computer program Methods 0.000 title claims abstract description 37
- 239000000284 extract Substances 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 28
- 238000012546 transfer Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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/0038—System on Chip
Abstract
本申请涉及一种数据传输方法、装置、设备、存储介质和计算机程序产品。所述方法包括:向从设备发送数据写请求,数据写请求携带将主设备的第一多维数据写入从设备所需的存储格式信息,第一多维数据包括多个数据单元;分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;对各目标传输数据生成相应的有效数据标识信息;依次发送目标传输数据与相应的有效数据标识信息至从设备,以指示从设备按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备。采用本方法可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据传输方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术与芯片技术的发展,对于高性能芯片的需求日益增长,一个片上系统主要包括:片上总线、主设备以及从设备。主设备以及从设备主要通过接口进行连接,使用总线协议进行数据传输,例如AXI(Advanced eXtensible Interface)协议。总线协议一般都是以单数据或一维数据的形式对存储器进行访问,将数据从一个地址空间复制到另一个地址空间,每一笔数据传输中多个数据单元的地址是连续递增的,即,第一个数据单元的地址为起始地址,后续数据单元的地址是基于前面的数据单元的地址进行递增,直到最后一个数据单元传输完成,届时该一笔数据即传输完成。
随着计算机技术与人工智能技术的发展,多维数据传输的场景越来越普及,例如,图像数据的存储方式为二维矩阵,又例如,常见图像处理算法(例如图像降噪、图像增强、特征检测等应用)往往针对的是图像中的一个矩阵块来进行处理,均涉及多维数据的传输。
相关技术中,为了实现多维数据传输,往往是将多维数据拆分成多笔一维数据来进行地址连续递增传输。上述处理方式,需要发起多次地址连续递增的数据传输,不仅会增加数据传输的资源消耗,还会影响传输效率。
发明内容
基于此,有必要针对上述技术问题,提供一种数据传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,该数据传输方法能够减少数据传输带来的资源消耗、提高数据传输效率。
第一方面,本申请提供了一种数据传输方法。所述方法包括:
向从设备发送数据写请求,所述数据写请求携带将主设备的第一多维数据写入所述从设备所需的存储格式信息,所述第一多维数据包括多个数据单元;
分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;
对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
依次发送所述目标传输数据与相应的有效数据标识信息至所述从设备,以指示所述从设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息存储至从设备。
第二方面,本申请还提供了一种数据传输装置。所述装置包括:
写请求发送模块,用于向从设备发送数据写请求,所述数据写请求携带将本地的第一多维数据写入所述从设备所需的存储格式信息,所述第一多维数据包括多个数据单元;
写数据生成模块,用于分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
写数据发送模块,用于依次发送所述目标传输数据与相应的有效数据标识信息至所述从设备,以指示所述从设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息存储至从设备。
在一个实施例中,所述写数据生成模块,用于接收到所述从设备反馈的数据写应答;在接收到所述数据写应答之后,按行读取所述第一多维数据的多个数据单元;在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,所述预设数量小于总线位宽。
在一个实施例中,所述写数据生成模块,用于在按行读取的过程中,若所述多个数据单元的位宽小于总线位宽,则采用无效数据对所述多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据;所述写数据生成模块,用于用于对所述一个目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示所述一个目标传输数据中属于所述多个数据单元的有效数据;所述写数据发送模块,用于发送所述一个目标数据与相应的有效数据标识信息至所述从设备,以指示所述从设备接收到所述一个目标数据与相应的有效数据标识信息后,按所述有效数据标识信息从所述一个目标数据中提取有效数据,将提取的有效数据按所述存储格式信息存储至从设备。
在一个实施例中,所述写数据生成模块,用于对各所述目标传输数据生成相应的末拍数据标识信息,所述末拍数据标识信息用于指示相应目标传输数据是否为所述数据写请求的多拍目标传输数据中的最后一拍目标传输数据;
所述写数据发送模块,用于依次发送所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息至所述从设备,以指示所述从设备依次接收到所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到所述数据写请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据按所述存储格式信息存储至从设备。
在一个实施例中,所述存储格式信息包括所述第一多维数据写入所述从设备所需的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
在一个实施例中,所述装置还包括:
读请求发送模块,用于向从设备发送数据读请求,所述数据读请求携带所述从设备上的第二多维数据在所述从设备的存储格式信息,所述第二多维数据包括多个数据单元;所述数据读请求用于指示所述从设备按所述数据读请求中的存储格式信息抓取所述从设备上的多个数据单元,分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
读数据接收模块,用于接收所述从设备依次发送的所述目标传输数据与相应的有效数据标识信息,按有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据传输方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据传输方法的步骤。
上述数据传输方法、装置、计算机设备、存储介质和计算机程序产品,主设备上的第一多维数据包括多个数据单元,主设备需要向从设备写入该第一多维数据时,向从设备发送数据写请求,该数据写请求携带将该第一多维数据写入该从设备所需的存储格式信息,而后分割该多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,该有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据,这样,在依次发送目标传输数据与相应的有效数据标识信息至从设备,从设备依次接收到目标传输数据与相应的有效数据标识信息后,就可以按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备,实现多维数据的写入。其中的有效数据标识信息允许主设备传输的多拍目标传输数据中携带不定数量的无效数据,从而可以在一个数据写请求下直接传输多维数据中地址不连续递增的多个数据单元,不再因为仅支持地址连续递增传输而导致主设备不得不发起多次地址连续递增的数据写传输,不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
第六方面,本申请提供了一种数据传输装置方法。所述方法包括:
接收主设备发送的数据读请求,所述数据读请求携带本地的第三多维数据的存储格式信息,所述第三多维数据包括多个数据单元;
按所述数据读请求中的存储格式信息,在本地抓取所述多个数据单元;
分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;
对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
依次发送所述目标传输数据与相应的有效数据标识信息至所述主设备,以指示所述主设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
第七方面,本申请还提供了一种数据传输装置。所述装置包括:
读请求接收模块,用于接收主设备发送的数据读请求,所述数据读请求携带本地的第三多维数据的存储格式信息,所述第三多维数据包括多个数据单元;
读数据生成模块,用于按所述数据读请求中的存储格式信息,在本地抓取所述多个数据单元;分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
读数据发送模块,用于依次发送所述目标传输数据与相应的有效数据标识信息至所述主设备,以指示所述主设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储存储。
在一个实施例中,所述读数据生成模块,用于按行读取所述第三多维数据的多个数据单元;在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,所述预设数量小于总线位宽。
在一个实施例中,所述读数据生成模块,用于在按行读取的过程中,若所述多个数据单元的位宽小于总线位宽,则采用无效数据对所述多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据;对所述一个目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示所述一个目标传输数据中属于所述多个数据单元的有效数据;所述读数据发送模块,用于发送所述一个目标数据与相应的有效数据标识信息至所述主设备,以指示所述主设备接收到所述一个目标数据与相应的有效数据标识信息后,按所述有效数据标识信息从所述一个目标数据中提取有效数据并存储。
在一个实施例中,所述读数据生成模块,用于对各所述目标传输数据生成相应的末拍数据标识信息,所述末拍数据标识信息用于指示相应目标传输数据是否为所述数据读请求的多拍目标传输数据中的最后一拍目标传输数据;所述读数据发送模块,用于依次发送所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息至所述主设备,以指示所述主设备依次接收到所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到所述数据读请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据进行存储。
在一个实施例中,所述存储格式信息包括所述第三多维数据在从设备的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
在一个实施例中,所述装置还包括:
写请求接收模块,用于接收主设备发送的数据写请求,所述数据写请求携带将所述主设备的第四多维数据写入本地所需的存储格式信息,所述第四多维数据包括多个数据单元;
写应答模块,用于响应于所述数据写请求反馈数据写应答,所述数据写应答用于指示所述主设备分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
写数据接收模块,用于接收所述主设备发送的所述目标传输数据与相应的有效数据标识信息;按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息进行存储。
第八方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据传输方法的步骤。
第九方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法的步骤。
第十方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据传输方法的步骤。
上述数据传输方法、装置、计算机设备、存储介质和计算机程序产品,从设备上的第三多维数据包括多个数据单元,主设备需要读取从设备中的该第三多维数据时,向从设备发送数据读请求,从设备接收主设备发送的数据读请求,该数据读请求携带从设备上的第三多维数据的存储格式信息,这样从设备就可以按所述数据读请求中的存储格式信息,在本地抓取所述多个数据单元,分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据,这样,在依次发送所述目标传输数据与相应的有效数据标识信息至所述主设备,主设备依次接收到所述目标传输数据与相应的有效数据标识信息后,就可以按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储,从而实现多维数据的读取。其中的有效数据标识信息允许从设备传输的多拍目标传输数据中携带不定数量的无效数据,从而可以在一个数据读请求下直接传输多维数据中地址不连续递增的多个数据单元,不再因为仅支持地址连续递增传输而导致主设备不得不发起多次地址连续递增的数据读传输,不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
附图说明
图1A为一个存储地址连续的一维数据的示意图;
图1B为一个存储地址非连续的二维数据的示意图;
图2为一个实施例中片上系统的示意图;
图3为相关技术中传输多维数据的示意图;
图4为一个实施例中数据传输方法的应用环境图;
图5为一个实施例中数据传输方法的流程示意图;
图6为一个实施例中写地址通道的信号示意图;
图7为一个实施例中写数据通道的信号示意图;
图8为一种可能的4拍数据写传输方式的示意图;
图9为一个实施例中多维数据写传输的结构示意图;
图10为一个实施例中数据传输方法的流程示意图;
图11为一个实施例中读请求通道的信号示意图;
图12为一个实施例中读数据通道的信号示意图;
图13为一种可能的4拍数据读传输方式;
图14为一个实施例中多维数据读传输的结构示意图;
图15为一个实施例中多维数据传输的结构示意图;
图16为一个实施例中数据传输装置的结构框图;
图17为另一个实施例中数据传输装置的结构框图;
图18为一个实施例中计算机设备的内部结构图;
图19为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例涉及如下概念,相关说明如下:
SOC:System On Chip,在一个片上系统SOC中,包括处理器、存储器和众多的各种各样的设备,要使它们高速度并且高效率地工作,需要一个高性能的片上总线,高性能的片上总线可以使得片上系统SOC具有更小的面积、更低的功耗和更高的性能。片上总线提供了片上系统SOC中各个设备之间互连的访问机制。片上总线连接的各个设备可以按照功能分为主设备(Master,传输请求发起者)与从设备(Slave,传输请求接受者),主设备可以发起一个传输任务,从设备对主设备发起的传输任务作出响应。需要说明的是,主设备与从设备可以跨设备,也可以集成在同一个设备上,片上系统SOC上的某个设备可以既是主设备又是从设备。
AXI:Advanced eXtensible Interface,高级可扩展接口,AXI总线协议是一种使用比较广泛的总线协议,它描述了主设备和从设备之间的数据传输方式,在该协议中,主设备和从设备之间通过握手信号建立连接。AXI总线协议采取读写分离、控制与数据分离的传输机制,通过定义读地址通道(AR)、读数据通道(R)、写地址通道(AW)、写数据通道(W)、写响应通道(B)五个独立的传输通道,很大程度上提高了传输效率。在基于AXI总线协议的SOC中,主设备(Master)和从设备(Slave)可以基于上述AXI总线协议实现数据交换。
1D/一维数据:即数据之间存放地址连续。如图1A所示,为一个存储地址连续的一维数据的示意图。参照图1A,存储体中以1D格式存放16个数据单元,数据单元的存储地址连续递增。
2D/多维数据:即连续存放一定长度后,跳变一段地址空间后继续存放的数据,如图像数据。如图1B所示,为一个存储地址非连续的二维数据的示意图。参照图1B,存储体中以2D格式存放16个数据单元,其中第4个与第5个、第8个与第9个、第12个与第13个数据单元在存储体内的存储地址发生了跳变,存储地址并非是连续递增的。
图像数据在计算机中的存储方式为二维矩阵,二维数组的行对应图像的高,二维数组的列对应图像的宽,二维数组的元素对应图像的像素,二维数组元素的值就是像素的灰度值。采用二维数组来存储数字图像,符合二维图像的行列特性,同时也便于程序的寻址操作,使得计算机图像编程十分方便。常见图像处理算法(例如图像降噪、图像增强、特征检测等应用)往往针对的是图像中的一个小块来进行处理,即对在某个局部窗口内的图像块进行处理。
由于片上系统SOC不支持地址跳变的数据传输,每次传输请求所传输的数据的地址必须连续递增。例如,单次传输请求的起始地址为addr,传输长度为16字节,则在单次传输中的所有数据与地址的对应关系为addr/addr+1/addr+2/……/addr+15。
那么,在面对上述的多维数据的情况下,就无法实现单次传输多维数据的所有数据单元,只能发起多次地址连续递增的数据传输。例如,如图2所示,为一个实施例中片上系统的示意图。片上系统包括片上总线、处理模块0、处理模块1,处理模块0可访问存储体A,处理模块1可访问存储体B,图像数据在存储体A中以二维矩阵格式存储,每个数据单元对应的是像素块编号。可见第4个与第5个、第8个与第9个、第12个与第13个数据单元在存储体A内的存储地址发生了跳变,存储地址并非是连续递增的。将源端即数据初始存放地内的二维数据传输到宿端即数据写往目的地,例如倘若希望将存储体A内的二维数据传输到存储体B中并以一维格式的连续地址存储,则可以由处理模块0作为主设备、处理模块1作为从设备来完成。假设存储体A起始地址为ADDR_A,存储体B起始地址为ADDR_B,作为主设备的处理模块0可以发起4次写数据传输,如图3所示:
1、将存储体A中的第1-4个数据单元传输到存储体B,即源端存储地址ADDR_A~ADDR_A+3传递到宿端存储地址ADDR_B~ADDR_B+3。
2、将存储体A中的第5-8个数据单元传输到存储体B,即源端存储地址ADDR_A+128~ADDR_A+131传递到宿端存储地址ADDR_B+4~ADDR_B+7。
3、将存储体A中的第9-12个数据单元传输到存储体B,即源端存储地址ADDR_A+256~ADDR_A+259传递到宿端存储地址ADDR_B+8~ADDR_B+11。
4、将存储体A中的第13-16个数据单元传输到存储体B,即源端存储地址ADDR_A+384~ADDR_A+387传递到宿端存储地址ADDR_B+12~ADDR_B+15。
当然,上述过程还可以由处理模块0作为从设备、处理模块1作为主设备来完成,此时作为主设备的处理模块1可以发起4次数据读传输来实现将存储体A内的二维数据传输到存储B中并以一维格式的连续地址存储。
因此,为实现多维数据在片上系统SOC内的传输,相关技术是将多维数据传输转换为多次一维数据传输,会增加读地址通道和写地址通道的资源消耗,例如上述例子中,关于多维数据的4次数据写传输或4次数据读传输就需要4次发送数据写请求或数据读请求的总线协议信号(如VALID或READY),而且,需要等待4次数据写传输或4次数据读传输完成后才能得到完整数据,这其中的4次握手会导致整个传输过程十分低效。
本申请实施例提供的数据传输方法,发送的有效数据标识信息,允许传输的目标传输数据中携带不定数量的无效数据,从而可以在一个数据传输请求下直接传输多维数据中地址不连续递增的多个数据单元,不再因为仅支持地址连续递增传输而导致主设备不得不发起多次地址连续递增的数据传输,不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
本申请实施例提供的数据传输方法,可以应用于如图2所示的应用环境中。主设备基于片上总线与从设备进行通信。
例如,主设备向从设备发送数据写请求,数据写请求携带将主设备的第一多维数据写入从设备所需的存储格式信息,第一多维数据包括多个数据单元;主设备分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;主设备对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;主设备依次发送目标传输数据与相应的有效数据标识信息至从设备,以指示从设备依次接收到目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备。
又例如,从设备接收主设备发送的数据读请求,数据读请求携带本地的第三多维数据的存储格式信息,第三多维数据包括多个数据单元;从设备按数据读请求中的存储格式信息,在本地抓取多个数据单元;从设备分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;从设备对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;从设备依次发送目标传输数据与相应的有效数据标识信息至主设备,以指示主设备依次接收到目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
其中,图2中的主设备可以是计算机设备的CPU、DMA或者其他加速器比如AI加速器等,从设备可以是计算机设备上的存储设备或存储介质控制器如DDR控制器等。主设备与从设备可以集成在同一个计算机设备上,也可以跨域不同的计算机设备。计算机设备可以是服务器,也可以是终端。
在主设备与从设备跨域不同的计算机设备的情况下,本申请实施例提供的数据传输方法,还可以应用于如图4所示的应用环境中。其中,主设备位于终端102上,从设备位于服务器104上,终端102与服务器104基于总线协议通过网络进行通信。例如,终端102作为主设备可以将多维的图像数据高效地传输至作为从设备的服务器104,以在服务器104上执行图像处理算法。
上述的终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图5所示,提供了一种数据传输方法,以该方法应用于主设备为例进行说明,包括以下步骤:
步骤502,向从设备发送数据写请求,数据写请求携带将主设备的第一多维数据写入从设备所需的存储格式信息,第一多维数据包括多个数据单元。
本实施例的数据传输方法,描述了将主设备上存放的第一多维数据写入到从设备的传输过程,即写数据传输。写数据传输通过三个传输通道实现:写地址通道(AW)、写数据通道(W)、写响应通道(B)。主设备可以通过写地址通道,向从设备发送数据写请求,该数据写请求携带将主设备的第一多维数据写入从设备所需的存储格式信息,该多维数据包括多个数据单元。通过该数据写请求主设备与从设备实现通信之前的握手,便可开始一次写数据传输过程,在该数据写请求中,传递了待写入的数据在从设备处的存储格式信息,可选地,该存储格式信息包括第一多维数据写入从设备所需的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
以图2为例,位于存储体A中的二维数据为本实施例中的第一多维数据,该第一多维数据包括16个数据单元,若希望将该二维数据共16字节的数据单元写入到存储体B的起始地址为ADDR_B的位置,且存放地址连续为例,则存储格式信息包括:起始地址ADDR_B、数据高度1、数据宽度16以及在高度方向上的存储间隔16,单位是字节。
具体地,主设备根据多维数据在从设备的预期存储格式生成相应的存储格式信息,而后拉起握手信号,等待从设备进行应答并取走该存储格式信息。
以基于AXI总线的传输协议为例,写地址通道的信号构成如下表一所示:
表一
其中,aw_dst_row_size/aw_dst_col_size/ aw_dst_row_stride表示当次数据写请求期待数据在从设备的存储格式:
主设备生成上述三个信号与awaddr后,拉起写地址通道的awvalid信号,将awvalid信号置1,表示主设备想开启一次数据写传输,从设备如果接收该数据写请求,则拉起写地址通道的awready信号进行应答,表示从设备已准备好进行本次的数据写传输,同时从设备解析得到awaddr/aw_dst_row_size/ aw_dst_col_size/ aw_dst_row_stride,了解到当次写入数据所期待的存储格式。可以理解,通道是与 VALID 和 READY关联的总线协议信号的集合。
依然以实现图2的2D-1D传输为例,假设处理模块0中存储体A中每个编号块为1字节,当前希望将编号为1-16的共16字节的数据写到存储体B的起始地址为ADDR_B的位置,且存储地址连续,即处理模块0为主设备,处理模块1为从设备,则写请求通道传输信号为图6所示。如图6所示,为一个实施例中写地址通道的信号示意图。参照图6,awvalid信号、awready信号均已被拉起,awaddr的取值是ADDR_B,aw_dst_row_size/ aw_dst_col_size/aw_dst_row_stride的取值分别为1、16、16,可实现将有效数据写到存储体B的起始地址为ADDR_B的位置,且存储地址连续。
步骤504,分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据。
可以理解,总线位宽指的是总线能同时传送的二进制数据的位数,例如总线位宽为128位的情况下可以一次性传输16字节的数据。在一些情况下,为保证可靠性,一次性传输的数据还需要包括校验数据、冗余数据、标识数据甚至无效数据,所以,一次传输的有效数据的数量可能并不能达到总线位宽。在多维数据包括的多个数据单元较多的情况下,或者超过总线位宽的情况下,主设备就需要分割将多维数据所包括的多个数据单元进行分割,依次得到多拍数据,以实现在一个数据写请求下直接传输多维数据中地址不连续递增的多个数据单元。
主设备可以按行读取多维数据,每次读取预设数量的多维数据,以总线位宽为128为例,预设数量可以是3个、4个或5个,只要小于8个即可。例如,以图2中的位于存储体A中的二维数据为例,主设备按行读取每次读取4个数据单元,作为一拍数据,可以得到4拍数据。当然,每拍数据的数据单元的数量也可以不是相同的,比如按行读取第一拍读取3个数据单元,第2拍读取2个数据单元,第3拍读取6个数据单元,第4拍读取5个数据单元。主设备还可以根据当前的网络状态决策每拍数据的数据单元的数量。
在一个实施例中,主设备在接收到数据写应答之后,按行读取第一多维数据的多个数据单元,在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,预设数量小于总线位宽。
具体地,主设备在接收到从设备反馈的数据写应答之后,将第一多维数据分割,从而得到有序的多拍数据,而后,为了保证从设备能够基于接收到的每拍数据准确提取有效数据,主设备还需要分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据。填充的无效数据可以是任意的数据,例如可以是0。
步骤506,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据。
为了能够在从设备处准确解析出属于多维数据的有效数据单元,主设备需对各目标传输数据生成相应的有效数据标识信息。可以理解,目标传输数据相应的有效数据标识信息,标识了目标传输数据中哪些数据单元是源自于第一多维数据的多个数据单元的有效数据,哪些是无效数据。可以理解,目标传输数据的位宽与有效数据标识信息的位宽存在对应关系,例如,目标传输数据的位宽是128比特,共16字节,传输16个数据,则有效数据标识信息的位宽为128/8,即16比特,每个比特用于标识对应数据是否有效,例如1代表有效,0代表无效。
步骤508,依次发送目标传输数据与相应的有效数据标识信息至从设备,以指示从设备依次接收到目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备。
主设备生成每拍所需传输的目标传输数据与相应的有效数据标识信息后,可以向从设备发起关于写数据通道的握手信号,从设备如果可以接收数据则拉起关于写数据通道的应答信号,主设备就可以从第一拍开始传输数据至从设备。
从设备已经在写地址通道获取了写数据的存储格式信息,因此可以将接收到的写数据与存储地址对应起来。具体而言,以图2的传输形式中所示的,从设备在接收数据之前了解到当前传输是希望将数据写入到存储体B中以ADDR_B起始的连续空间中,因此可以得到16个有效数据在存储体B的存储地址为:ADDR_B/ADDR_B+1/ADDR_B+2/+……/ADDR_B+15,从而可以正确的实现数据写入存储体B的过程。
需要说明的是,上述实施例中,主设备是准备好每拍数据后再启动多拍传输,也可以是,主设备每准备好一拍数据就启动一拍数据传输,再准备好下一拍数据启动下一拍数据传输,直至完成最后一拍数据传输,本申请实施例对此不作限制。可以理解,本实施例中多拍数据传输与相关技术中发起多次地址连续递增的数据传输存在区别。前者是在一个数据传输请求下传输多拍数据,多拍数据传输属于一个数据传输请求,只有一次握手过程,且不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。而后者则是多次独立的数据传输请求,需要多次握手过程,且每次传输都是地址连续递增传输。
在一个实施例中,方法还包括:对各目标传输数据生成相应的末拍数据标识信息,末拍数据标识信息用于指示相应目标传输数据是否为数据写请求的多拍目标传输数据中的最后一拍目标传输数据;则步骤508可以是:依次发送目标传输数据、相应的有效数据标识信息与末拍数据标识信息至从设备,以指示从设备依次接收到目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到数据写请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据按存储格式信息存储至从设备。
以基于AXI总线的传输协议为例,写数据通道的信号构成如下表二所示:
表二
其中,wdata即为上述填充过无效数据得到的每拍目标传输数据,wben即为相应的有效数据标识信息,wlast用于指示是否为该数据写请求对应的最后一拍目标传输数据,若为1则是最后一拍,否则不是最后一拍。可以理解,写数据通道中wben信号,使得传输多维数据可以更高效。对于每一拍目标传输数据而言,wben可以指示wdata中有效的数据,且有效数据的待写入地址连续递增1。主设备在生成wdata与wben后,拉起写数据通道的wvalid信号,将wvalid信号置1,表示主设备开始传输写数据,从设备可以接收则拉起写数据通道的wready信号进行应答。
依然以实现图2的2D-1D传输为例,当次数据写请求准备写入存储体A中的1-16数据块,wben所对应的数据依次为1/2/3/4/5……/16,多拍数据之间可以有数量不定的wben指示的无效数据,如图7所示,为一个实施例中写数据通道的信号示意图,参照图7,wvalid被拉高、wready被拉高、wlast在最后一拍数据时被拉高,共4拍。如图8所示,为一种可能的4拍数据写传输方式,第一拍的wdata传输第1-3个数据单元、第一拍的wdata传输第4-5、第一拍的wdata传输第6-11个数据单元、第四拍的wdata传输第12-16个数据单元,每一拍相应数据单元对应的有效数据标识位被拉高。当然,这只是示意,分拍的数量不作限制,例如也可以分3拍、2拍、甚至在数据单元较少的情况下只有一拍数据传输。
在一个实施例中,若多个数据单元的位宽小于总线位宽,则主设备还可以采用无效数据对多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据,对一个目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示一个目标传输数据中属于多个数据单元的有效数据,发送一个目标数据与相应的有效数据标识信息至从设备。
例如,第一多维数据是2*3的二维矩阵数据,或是2*2的二维矩阵数据,如上文所提到的那样,相关技术中需要2次握手、2次数据传输才能将该多维数据写入到从设备。而本实施例中,该多维数据包括的数据单元的数量,少于总线位宽,则主设备可以通过1次数据写请求与1次数据传输来实现传输多维数据中地址不连续递增的多个数据单元,可以减少资源消耗,提高传输效率。
在一个实施例中,在完成数据的全部写入后,从设备可以通过写响应通道通知主设备。写响应通道的通道信号如下表三所示:
表三
从设备写入数据完成后,生成对应的bresp信号,并拉起bvalid信号,主设备可以接收写响应则拉起bready信号进行接收。
如图9所示,为一个实施例中多维数据写传输的结构示意图。参照图9,主设备包括写请求生成单元、写数据生成单元和写响应接收单元,从设备包括写请求接收单元、写数据地址映射单元和写响应生成单元。
主设备的写请求生成单元生成awaddr/aw_dst_row_size/ aw_dst_col_size/aw_dst_row_stride三个信号后,拉起awvalid信号,即生成数据写请求,从设备的写请求接收单元接收数据写请求,拉起awready信号进行应答,同时由写请求接收单元解析得到awaddr/aw_dst_row_size/aw_dst_col_size/ aw_dst_row_stride。
主设备的写数据生成单元根据当前数据写请求生成符合预期的wdata和wben,拉起wvalid信号,从设备可以接收则拉起wready信号,主设备开始数据写传输,最后一笔数据用wlast为1进行指示。从设备的写数据地址映射单元已经获取了当前的写数据格式,因此可以根据接收到的wdata和wben将写数据与地址对应起来,从而可以正确的实现数据写入过程。从设备在完成全部数据写入后,通过写响应生成单元生成对应的bresp信号,并拉起bvalid信号,主设备可以接收写响应信号则拉起bready信号进行接收,完成整个多维数据的数据写传输。
主设备还可以向从设备发起数据读传输,具体包括:向从设备发送数据读请求,数据读请求携带从设备上的第二多维数据在从设备的存储格式信息,第二多维数据包括多个数据单元;数据读请求用于指示从设备按数据读请求中的存储格式信息抓取从设备上的多个数据单元,分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;接收从设备依次发送的目标传输数据与相应的有效数据标识信息,按有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
关于该实施例的描述内容将在后文说明。
上述数据传输方法、装置、计算机设备、存储介质和计算机程序产品,主设备上的第一多维数据包括多个数据单元,主设备需要向从设备写入该第一多维数据时,向从设备发送数据写请求,该数据写请求携带将该第一多维数据写入该从设备所需的存储格式信息,而后分割该多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,该有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据,这样,在依次发送目标传输数据与相应的有效数据标识信息至从设备,从设备依次接收到目标传输数据与相应的有效数据标识信息后,就可以按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备,实现多维数据的写入。其中的有效数据标识信息允许主设备传输的多拍目标传输数据中携带不定数量的无效数据,从而可以在一个数据写请求下直接传输多维数据中地址不连续递增的多个数据单元,不再因为仅支持地址连续递增传输而导致主设备不得不发起多次地址连续递增的数据写传输,不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
在一个实施例中,如图10所示,提供了一种数据传输方法,以该方法应用于主设备为例进行说明,包括以下步骤:
步骤1002,接收主设备发送的数据读请求,数据读请求携带本地的第三多维数据的存储格式信息,第三多维数据包括多个数据单元。
本实施例的数据传输方法,描述了将主设备将从设备上存放的第三多维数据读取到主设备的传输过程,即读数据传输。读数据传输通过两个传输通道实现:读地址通道(AR)、读数据通道(R)。主设备可以通过读地址通道,向从设备发送数据读请求,该数据读请求携带将从设备上某个存储格式信息所指示的第三多维数据读取到主设备,该多维数据包括多个数据单元。通过该数据读请求主设备与从设备实现通信之前的握手,便可开始一次读数据传输过程,在该数据读请求中,传递了待读取的数据在从设备处的存储格式信息,可选地,该存储格式信息包括第三多维数据在从设备的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
以图2为例,位于存储体A中的二维数据为本实施例中的第三多维数据,该第三多维数据包括16个数据单元,若希望将该二维数据共16字节的数据单元读取到存储体B,该多维数据在从设备上的存储格式信息包括:起始地址ADDR_A、数据高度4、数据宽度4以及在高度方向上的存储间隔16,单位是字节。
具体地,主设备根据多维数据在从设备的存储格式生成相应的存储格式信息,而后拉起握手信号,向从设备发出数据读请求,从设备接收该数据读请求后,进行应答并获得该存储格式信息。
以基于AXI总线的传输协议为例,读地址通道的信号构成如下表四所示:
表四
其中ar_dst_row_size/ar_dst_col_size/ ar_dst_row_stride
表示当次数据读请求要读取的源数据在从设备的存储格式:
主设备生成上述三个信号与araddr后,拉起读地址通道的arvalid信号,将arvalid信号置1,表示主设备想开启一次数据读传输,从设备如果接收该数据读请求,则拉起读地址通道的arready信号进行应答,表示从设备已准备好进行本次的数据读传输,同时从设备解析得到araddr/ar_dst_row_size/ ar_dst_col_size/ ar_dst_row_stride,了解到当次要读取的数据在本地的存储位置。
依然以实现图2的2D-1D传输为例,假设处理模块0中存储体A中每个编号块为1字节,当前希望将编号为1-16的共16字节的数据读取到处理模块1的存储体B,即处理模块0为从设备,处理模块1为主设备。如图11所示,为一个实施例中读请求通道的信号示意图。参照图11,arvalid信号、arready信号均已被拉起,araddr的取值是ADDR_A,ar_dst_row_size/ar_dst_col_size/ ar_dst_row_stride的取值分别为4、4、16,可实现将多维数据读取到存储体B。
步骤1004,按数据读请求中的存储格式信息,在本地抓取多个数据单元。
具体地,从设备按照数据读请求中的存储格式信息,在本地的存储体中获取多个数据单元。
步骤1006,分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据。
在多维数据包括的多个数据单元较多的情况下,或者超过总线位宽的情况下,从设备就需要分割将多维数据所包括的多个数据单元进行分割,依次得到多拍数据,以实现在一个数据读请求下直接传输多维数据中地址不连续递增的多个数据单元。
从设备可以按行读取多维数据,每次读取预设数量的多维数据,以总线位宽为128为例,预设数量可以是3个、4个或5个,只要小于8个即可。例如,以图2中的位于存储体A中的二维数据为例,从设备按行读取每次读取4个数据单元,作为一拍数据,可以得到4拍数据。当然,每拍数据的数据单元的数量也可以不是相同的,比如按行读取第一拍读取3个数据单元,第2拍读取2个数据单元,第3拍读取6个数据单元,第4拍读取5个数据单元。从设备还可以根据当前的网络状态决策每拍数据的数据单元的数量。
在一个实施例中,从设备可以按行读取第三多维数据的多个数据单元;在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,预设数量小于总线位宽。
具体地,从设备将抓取的第三多维数据分割,从而得到有序的多拍数据,而后,为了保证主设备能够基于接收到的每拍数据准确提取有效数据,从设备还需要分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据。填充的无效数据可以是任意的数据,例如可以是0。
步骤1008,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据。
为了能够在主设备准确解析出属于多维数据的有效数据单元,从设备需对各目标传输数据生成相应的有效数据标识信息。可以理解,目标传输数据相应的有效数据标识信息,标识了目标传输数据中哪些数据单元是源自于第三多维数据的多个数据单元的有效数据,哪些是无效数据。可以理解,目标传输数据的位宽与有效数据标识信息的位宽存在对应关系,例如,目标传输数据的位宽是128比特,共16字节,传输16个数据,则有效数据标识信息的位宽为128/8,即16比特,每个比特用于标识对应数据是否有效,例如1代表有效,0代表无效。
具体而言,以图10中所示的数据读请求为例,从设备在此前的数据读请求中得知主设备希望读取本地的起始地址为ADDR_A,且组成格式为4*4、stride为16字节的二维数据,则从设备可以在本地的存储体A中抓取对应数据后生成目标传输数据与相应的有效数据标识信息。
步骤1010,依次发送目标传输数据与相应的有效数据标识信息至主设备,以指示主设备依次接收到目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
从设备生成每拍所需传输的目标传输数据与相应的有效数据标识信息后,可以向从设备发起关于读数据通道的握手信号,主设备如果可以接收数据则拉起关于读数据通道的应答信号,从设备就可以从第一拍开始传输数据至主设备。
在一个实施例中,方法还包括:对各目标传输数据生成相应的末拍数据标识信息,末拍数据标识信息用于指示相应目标传输数据是否为数据读请求的多拍目标传输数据中的最后一拍目标传输数据;步骤1010还可以是:依次发送目标传输数据、相应的有效数据标识信息与末拍数据标识信息至主设备,以指示主设备依次接收到目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到数据读请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据进行存储。
以基于AXI总线的传输协议为例,读数据通道的通道信号构成如下表五所示:
表五
其中,rdata即为上述填充过无效数据得到的每拍目标传输数据,rben即为相应的有效数据标识信息,rlast用于指示是否为该数据读请求对应的最后一拍目标传输数据,若为1则是最后一拍,否则不是最后一拍。可以理解,读数据通道中rben信号,使得传输多维数据可以更高效。对于每一拍目标传输数据而言,rben可以指示rdata中有效的数据。主设备在生成rdata与rben后,拉起写数据通道的rvalid信号,将rvalid信号置1,表示从设备开始传输写数据,主设备可以接收则拉起读数据通道的rready信号进行应答。
依然以实现图2的2D-1D传输为例,当次数据读请求准备读取存储体A中的1-16数据块,一共传输4拍数据,每拍拍数据之间可以有数量不定的rben指示的无效数据,如图12所示,为一个实施例中读数据通道的信号示意图,rvalid被拉高、rready被拉高、rlast在最后一拍数据时被拉高、rdata为目标传输数据,rben为相应的有效数据标识信息。如图13所示,为一种可能的4拍数据读传输方式,参照图13,第一拍的rdata传输第1-3个数据单元、第一拍的rdata传输第4-5、第一拍的rdata传输第6-11个数据单元、第四拍的rdata传输第12-16个数据单元,每一拍相应数据单元对应的有效数据标识位被拉高。
在一个实施例中,若多个数据单元的位宽小于总线位宽,则从设备还可以采用无效数据对多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据,对一个目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示一个目标传输数据中属于多个数据单元的有效数据,发送一个目标数据与相应的有效数据标识信息至主设备。
例如,第一多维数据是2*3的二维矩阵数据,或是2*2的二维矩阵数据,如上文所提到的那样,相关技术中需要2次握手、2次数据传输才能将该多维数据读取到主设备。而本实施例中,该多维数据包括的数据单元的数量,少于总线位宽,则主设备可以通过1次数据读请求与1次数据传输来实现传输多维数据中地址不连续递增的多个数据单元,可以减少资源消耗,提高传输效率。
如图14所示,为一个实施例中多维数据读传输的结构示意图。参照图14,主设备包括读请求生成单元、读数据地址映射单元,从设备包括读请求接收单元、读数据生成单元。
主设备的读请求生成单元生成araddr/ar_dst_row_size/ ar_dst_col_size/ar_dst_row_stride三个信号后,拉起arvalid信号,即生成数据读请求,从设备的读请求接收单元接收数据读请求,拉起arready信号进行应答,同时由读请求接收单元解析得到araddr/ar_dst_row_size/ ar_dst_col_size/ar_dst_row_stride。从设备的读数据生成单元根据当前数据读请求生成rdata和rben,拉起rvalid信号,主设备可以接收则拉起rready信号,从设备开始数据读传输,最后一笔数据用rlast为1进行指示。主设备的读数据地址映射单元对于接收到的数据,利用rben提取出有效数据,将有效数据在本地存储,完成整个多维数据的数据读传输。
从设备还可以接收主设备发起的数据写传输,具体包括:接收主设备发送的数据写请求,数据写请求携带将主设备的第四多维数据写入本地所需的存储格式信息,第四多维数据包括多个数据单元;响应于数据写请求反馈数据写应答,数据写应答用于指示主设备分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;接收主设备发送的目标传输数据与相应的有效数据标识信息;按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息进行存储。
关于该实施例的描述内容,前文已经提到过,此处不重复说明。
上述数据传输方法、装置、计算机设备、存储介质和计算机程序产品,从设备上的第三多维数据包括多个数据单元,主设备需要读取从设备中的该第三多维数据时,向从设备发送数据读请求,从设备接收主设备发送的数据读请求,该数据读请求携带从设备上的第三多维数据的存储格式信息,这样从设备就可以按数据读请求中的存储格式信息,在本地抓取多个数据单元,分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据,这样,在依次发送目标传输数据与相应的有效数据标识信息至主设备,主设备依次接收到目标传输数据与相应的有效数据标识信息后,就可以按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储,从而实现多维数据的读取。其中的有效数据标识信息允许从设备传输的多拍目标传输数据中携带不定数量的无效数据,从而可以在一个数据读请求下直接传输多维数据中地址不连续递增的多个数据单元,不再因为仅支持地址连续递增传输而导致主设备不得不发起多次地址连续递增的数据读传输,不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
本申请实施例提供的“多维数传方案”,可用于在多块存储体之间交互数据,有效的提升了数据传输效率。如图15所示,为本申请实施例提供的数据传输方法的结构示意图,该方法描述了主设备与从设备之间的传输行为,传输由主设备发起,从设备被动响应,包括上述的数据写传输与数据读传输,可以支持传输数据与存储地址之间可以跳变对应,只需要发起一次传输即可。
上述实施例中描述了实现多维数据传输而增加的字段及其含义,例如rdata\rben\rlast,wdata\wben\wlast,本申请实施例并不限制增加一些额外的字段用于表示额外的含义,例如,可以在读、写请求通道增加burst_len信号,用于指示当前读、写请求对应的读、写数据的拍数(即前文的分割成多少拍,有多少个目标传输数据),还可以在读、写数据通道中增加数据校验字段,以保证数据传输可靠性。
在一个具体的应用场景中,计算机设备的摄像头采集到的图像数据,经过图像数据的预处理后,通过AXI接口将预处理后的图像数据写入到DDR中,显示模块再从DDR中读取图像数据,显示到显示屏上。通过AXI总线从DDR中读取图像数据,通过本申请实施例提供的数据传输方法,能够提升数据读写效率。在又一个应用场景中,终端采集的图像数据通过AXI接口传输到服务器,服务器根据图像处理算法进行处理后,向终端反馈处理结果,可提高响应效率。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据传输方法的数据传输装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据传输装置实施例中的具体限定可以参见上文中对于数据传输方法的限定,在此不再赘述。
在一个实施例中,如图16所示,提供了一种数据传输装置1600,包括:写请求发送模块1602、写数据生成模块1604和写数据发送模块1606,其中:
写请求发送模块1602,用于向从设备发送数据写请求,数据写请求携带将本地的第一多维数据写入从设备所需的存储格式信息,第一多维数据包括多个数据单元;
写数据生成模块1604,用于分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;
写数据发送模块1606,用于依次发送目标传输数据与相应的有效数据标识信息至从设备,以指示从设备依次接收到目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备。
在一个实施例中,写数据生成模块1604,用于接收到从设备反馈的数据写应答;在接收到数据写应答之后,按行读取第一多维数据的多个数据单元;在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,预设数量小于总线位宽。
在一个实施例中,写数据生成模块1604,用于在按行读取的过程中,若多个数据单元的位宽小于总线位宽,则采用无效数据对多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据;写数据生成模块1604,用于对一个目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示一个目标传输数据中属于多个数据单元的有效数据;写数据发送模块1606,用于发送一个目标数据与相应的有效数据标识信息至从设备,以指示从设备接收到一个目标数据与相应的有效数据标识信息后,按有效数据标识信息从一个目标数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备。
在一个实施例中,写数据生成模块1604,用于对各目标传输数据生成相应的末拍数据标识信息,末拍数据标识信息用于指示相应目标传输数据是否为数据写请求的多拍目标传输数据中的最后一拍目标传输数据;
写数据发送模块1606,用于依次发送目标传输数据、相应的有效数据标识信息与末拍数据标识信息至从设备,以指示从设备依次接收到目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到数据写请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据按存储格式信息存储至从设备。
在一个实施例中,存储格式信息包括第一多维数据写入从设备所需的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
在一个实施例中,装置还包括:
读请求发送模块,用于向从设备发送数据读请求,数据读请求携带从设备上的第二多维数据在从设备的存储格式信息,第二多维数据包括多个数据单元;数据读请求用于指示从设备按数据读请求中的存储格式信息抓取从设备上的多个数据单元,分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;
读数据接收模块,用于接收从设备依次发送的目标传输数据与相应的有效数据标识信息,按有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
上述数据传输装置1600,主设备上的第一多维数据包括多个数据单元,主设备需要向从设备写入该第一多维数据时,向从设备发送数据写请求,该数据写请求携带将该第一多维数据写入该从设备所需的存储格式信息,而后分割该多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,该有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据,这样,在依次发送目标传输数据与相应的有效数据标识信息至从设备,从设备依次接收到目标传输数据与相应的有效数据标识信息后,就可以按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息存储至从设备,实现多维数据的写入。其中的有效数据标识信息允许主设备传输的多拍目标传输数据中携带不定数量的无效数据,从而可以在一个数据写请求下直接传输多维数据中地址不连续递增的多个数据单元,不再因为仅支持地址连续递增传输而导致主设备不得不发起多次地址连续递增的数据写传输,不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
在一个实施例中,如图17所示,提供了一种数据传输装置1700,包括:读请求接收模块1702、读数据生成模块1704和读数据发送模块1706,其中:
读请求接收模块1702,用于接收主设备发送的数据读请求,数据读请求携带本地的第三多维数据的存储格式信息,第三多维数据包括多个数据单元;
读数据生成模块1704,用于按数据读请求中的存储格式信息,在本地抓取多个数据单元;分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;
读数据发送模块1706,用于依次发送目标传输数据与相应的有效数据标识信息至主设备,以指示主设备依次接收到目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储存储。
在一个实施例中,读数据生成模块1704,用于按行读取第三多维数据的多个数据单元;在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,预设数量小于总线位宽。
在一个实施例中,读数据生成模块1704,用于在按行读取的过程中,若多个数据单元的位宽小于总线位宽,则采用无效数据对多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据;对一个目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示一个目标传输数据中属于多个数据单元的有效数据;读数据发送模块,用于发送一个目标数据与相应的有效数据标识信息至主设备,以指示主设备接收到一个目标数据与相应的有效数据标识信息后,按有效数据标识信息从一个目标数据中提取有效数据并存储。
在一个实施例中,读数据生成模块1704,用于对各目标传输数据生成相应的末拍数据标识信息,末拍数据标识信息用于指示相应目标传输数据是否为数据读请求的多拍目标传输数据中的最后一拍目标传输数据;读数据发送模块1706,用于依次发送目标传输数据、相应的有效数据标识信息与末拍数据标识信息至主设备,以指示主设备依次接收到目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到数据读请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据进行存储。
在一个实施例中,存储格式信息包括第三多维数据在从设备的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
在一个实施例中,装置还包括:
写请求接收模块,用于接收主设备发送的数据写请求,数据写请求携带将主设备的第四多维数据写入本地所需的存储格式信息,第四多维数据包括多个数据单元;
写应答模块,用于响应于数据写请求反馈数据写应答,数据写应答用于指示主设备分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据;
写数据接收模块,用于接收主设备发送的目标传输数据与相应的有效数据标识信息;按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按存储格式信息进行存储。
上述数据传输装置1700,从设备上的第三多维数据包括多个数据单元,主设备需要读取从设备中的该第三多维数据时,向从设备发送数据读请求,从设备接收主设备发送的数据读请求,该数据读请求携带从设备上的第三多维数据的存储格式信息,这样从设备就可以按数据读请求中的存储格式信息,在本地抓取多个数据单元,分割多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各目标传输数据生成相应的有效数据标识信息,有效数据标识信息用于指示相应目标传输数据中属于多个数据单元的有效数据,这样,在依次发送目标传输数据与相应的有效数据标识信息至主设备,主设备依次接收到目标传输数据与相应的有效数据标识信息后,就可以按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储,从而实现多维数据的读取。其中的有效数据标识信息允许从设备传输的多拍目标传输数据中携带不定数量的无效数据,从而可以在一个数据读请求下直接传输多维数据中地址不连续递增的多个数据单元,不再因为仅支持地址连续递增传输而导致主设备不得不发起多次地址连续递增的数据读传输,不再受限于地址连续递增传输,可以减少数据传输的资源消耗,还使得多维数据传输变得高效。
上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图18所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储多维数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据传输方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图19所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据传输方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图18、图19中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述数据传输方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述数据传输方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据传输方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (16)
1.一种数据传输方法,其特征在于,所述方法包括:
向从设备发送数据写请求,所述数据写请求携带将主设备的第一多维数据写入所述从设备所需的存储格式信息,所述第一多维数据包括多个数据单元;
分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;
对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
依次发送所述目标传输数据与相应的有效数据标识信息至所述从设备,以指示所述从设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息存储至从设备。
2.根据权利要求1所述的方法,其特征在于,所述分割所述多个数据单元依次得到多拍数据,包括:
接收到所述从设备反馈的数据写应答;
在接收到所述数据写应答之后,按行读取所述第一多维数据的多个数据单元;
在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,所述预设数量小于总线位宽。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在按行读取的过程中,若所述多个数据单元的位宽小于总线位宽,则采用无效数据对所述多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据;
对所述一个目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示所述一个目标传输数据中属于所述多个数据单元的有效数据;
发送所述一个目标传输数据与相应的有效数据标识信息至所述从设备,以指示所述从设备接收到所述一个目标传输数据与相应的有效数据标识信息后,按所述有效数据标识信息从所述一个目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息存储至从设备。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对各所述目标传输数据生成相应的末拍数据标识信息,所述末拍数据标识信息用于指示相应目标传输数据是否为所述数据写请求的多拍目标传输数据中的最后一拍目标传输数据;
所述依次发送所述目标传输数据与相应的有效数据标识信息至所述从设备,以指示所述从设备依次接收到所述目标传输数据与相应的有效数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息进行存储,包括:
依次发送所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息至所述从设备,以指示所述从设备依次接收到所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到所述数据写请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据按所述存储格式信息存储至从设备。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述存储格式信息包括所述第一多维数据写入所述从设备所需的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向从设备发送数据读请求,所述数据读请求携带所述从设备上的第二多维数据在所述从设备的存储格式信息,所述第二多维数据包括多个数据单元;
所述数据读请求用于指示所述从设备按所述数据读请求中的存储格式信息抓取所述从设备上的多个数据单元,分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
接收所述从设备依次发送的所述目标传输数据与相应的有效数据标识信息,按有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
7.一种数据传输方法,其特征在于,所述方法包括:
接收主设备发送的数据读请求,所述数据读请求携带本地的第三多维数据的存储格式信息,所述第三多维数据包括多个数据单元;
按所述数据读请求中的存储格式信息,在本地抓取所述多个数据单元;
分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;
对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
依次发送所述目标传输数据与相应的有效数据标识信息至所述主设备,以指示所述主设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
8.根据权利要求7所述的方法,其特征在于,所述分割所述多个数据单元依次得到多拍数据,包括:
按行读取所述第三多维数据的多个数据单元;
在按行读取的过程中,每读取到预设数量的数据时,得到位宽小于总线位宽的一拍数据,依次得到位宽小于总线位宽的多拍数据,其中,所述预设数量小于总线位宽。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在按行读取的过程中,若所述多个数据单元的位宽小于总线位宽,则采用无效数据对所述多个数据单元进行填充后得到位宽为总线位宽的一个目标传输数据;
对所述一个目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示所述一个目标传输数据中属于所述多个数据单元的有效数据;
发送所述一个目标传输数据与相应的有效数据标识信息至所述主设备,以指示所述主设备接收到所述一个目标传输数据与相应的有效数据标识信息后,按所述有效数据标识信息从所述一个目标传输数据中提取有效数据并存储。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
对各所述目标传输数据生成相应的末拍数据标识信息,所述末拍数据标识信息用于指示相应目标传输数据是否为所述数据读请求的多拍目标传输数据中的最后一拍目标传输数据;
所述依次发送所述目标传输数据与相应的有效数据标识信息至所述主设备,以指示所述主设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储,包括:
依次发送所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息至所述主设备,以指示所述主设备依次接收到所述目标传输数据、相应的有效数据标识信息与末拍数据标识信息后,依次按各自的有效数据标识信息从相应目标传输数据中提取有效数据,并根据相应的末拍数据标识信息确定接收到所述数据读请求的多拍目标传输数据中的最后一拍目标传输数据时,将提取的有效数据进行存储。
11.根据权利要求7至10任一项所述的方法,其特征在于,所述存储格式信息包括所述第三多维数据在从设备的起始存储地址、数据宽度、数据高度以及在高度方向上的存储间隔。
12.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收主设备发送的数据写请求,所述数据写请求携带将所述主设备的第四多维数据写入本地所需的存储格式信息,所述第四多维数据包括多个数据单元;
响应于所述数据写请求反馈数据写应答,所述数据写应答用于指示所述主设备分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据,对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
接收所述主设备发送的所述目标传输数据与相应的有效数据标识信息;
按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息进行存储。
13.一种数据传输装置,其特征在于,所述装置包括:
写请求发送模块,用于向从设备发送数据写请求,所述数据写请求携带将本地的第一多维数据写入所述从设备所需的存储格式信息,所述第一多维数据包括多个数据单元;
写数据生成模块,用于分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
写数据发送模块,用于依次发送所述目标传输数据与相应的有效数据标识信息至所述从设备,以指示所述从设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据,将提取的有效数据按所述存储格式信息存储至从设备。
14.一种数据传输装置,其特征在于,所述装置包括:
读请求接收模块,用于接收主设备发送的数据读请求,所述数据读请求携带本地的第三多维数据的存储格式信息,所述第三多维数据包括多个数据单元;
读数据生成模块,用于按所述数据读请求中的存储格式信息,在本地抓取所述多个数据单元;分割所述多个数据单元依次得到多拍数据,分别采用无效数据对每拍数据进行填充,得到位宽为总线位宽的多拍目标传输数据;对各所述目标传输数据生成相应的有效数据标识信息,所述有效数据标识信息用于指示相应目标传输数据中属于所述多个数据单元的有效数据;
读数据发送模块,用于依次发送所述目标传输数据与相应的有效数据标识信息至所述主设备,以指示所述主设备依次接收到所述目标传输数据与相应的有效数据标识信息后,按各自的有效数据标识信息依次从相应目标传输数据中提取有效数据并存储。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311051396.8A CN116756071B (zh) | 2023-08-21 | 2023-08-21 | 数据传输方法、装置、设备、存储介质和计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311051396.8A CN116756071B (zh) | 2023-08-21 | 2023-08-21 | 数据传输方法、装置、设备、存储介质和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116756071A CN116756071A (zh) | 2023-09-15 |
CN116756071B true CN116756071B (zh) | 2023-12-22 |
Family
ID=87953734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311051396.8A Active CN116756071B (zh) | 2023-08-21 | 2023-08-21 | 数据传输方法、装置、设备、存储介质和计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116756071B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537319A (zh) * | 2014-12-22 | 2015-04-22 | 昆腾微电子股份有限公司 | 对总线进行加解扰的装置和方法、集成电路芯片 |
CN111213178A (zh) * | 2019-03-29 | 2020-05-29 | 深圳市大疆创新科技有限公司 | 连通域处理方法、数据处理设备及计算机可读存储介质 |
WO2020177283A1 (zh) * | 2019-03-06 | 2020-09-10 | 苏州浪潮智能科技有限公司 | Axi2wb总线桥实现方法、装置、设备及存储介质 |
-
2023
- 2023-08-21 CN CN202311051396.8A patent/CN116756071B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537319A (zh) * | 2014-12-22 | 2015-04-22 | 昆腾微电子股份有限公司 | 对总线进行加解扰的装置和方法、集成电路芯片 |
WO2020177283A1 (zh) * | 2019-03-06 | 2020-09-10 | 苏州浪潮智能科技有限公司 | Axi2wb总线桥实现方法、装置、设备及存储介质 |
CN111213178A (zh) * | 2019-03-29 | 2020-05-29 | 深圳市大疆创新科技有限公司 | 连通域处理方法、数据处理设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
多维转类一维特征波控码表索引的设计方法;段玲琳;合肥工业大学学报(自然科学版)(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116756071A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769749B2 (en) | Processor, information processing apparatus, and operation method of processor | |
KR102642853B1 (ko) | 컨볼루션 회로, 그것을 포함하는 어플리케이션 프로세서 및 그것의 동작 방법 | |
CN111651384B (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
US11132124B2 (en) | Memory subsystem operations with unaligned and scatter gather feature to support convolution and dimension shuffle | |
CN108388527B (zh) | 直接存储器存取引擎及其方法 | |
CN112199040B (zh) | 存储访问方法及智能处理装置 | |
CN111984189B (zh) | 神经网络计算装置和数据读取、数据存储方法及相关设备 | |
CN104981838A (zh) | 优化图像存储器访问 | |
CN117453594A (zh) | 数据传输装置及方法 | |
CN102566959B (zh) | 一种基于sgdma的图像分割处理方法及装置 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN105389463A (zh) | 医疗ris系统诊断报告的同步方法及前置服务器 | |
TW200617668A (en) | Cache memory management system and method | |
CN116756071B (zh) | 数据传输方法、装置、设备、存储介质和计算机程序产品 | |
US20240086113A1 (en) | Synchronous write method and device, storage system and electronic device | |
WO2023226845A1 (zh) | 图像数据传输方法、装置和电子设备 | |
CN110458285B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US8041903B2 (en) | Processor and method for controlling memory | |
US20220188380A1 (en) | Data processing method and apparatus applied to graphics processing unit, and electronic device | |
CN110322388A (zh) | 池化方法及装置、池化系统、计算机可读存储介质 | |
US11210105B1 (en) | Data transmission between memory and on chip memory of inference engine for machine learning via a single data gathering instruction | |
CN114070892A (zh) | 数据传输方法和装置 | |
CN106658121A (zh) | 一种机顶盒显示指纹信息的方法及系统 | |
CN113190549A (zh) | 多维表数据调取方法、装置、服务器及存储介质 | |
TWI764311B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40096131 Country of ref document: HK |