CN111176725A - 数据处理方法、装置、设备和存储介质 - Google Patents
数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111176725A CN111176725A CN201911379730.6A CN201911379730A CN111176725A CN 111176725 A CN111176725 A CN 111176725A CN 201911379730 A CN201911379730 A CN 201911379730A CN 111176725 A CN111176725 A CN 111176725A
- Authority
- CN
- China
- Prior art keywords
- data
- controller
- line
- processing
- memory
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Advance Control (AREA)
- Bus Control (AREA)
- Programmable Controllers (AREA)
Abstract
本申请提供一种数据处理方法、装置、设备和存储介质,其中方法应用于一种数据处理系统,数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能;其中,方法包括:控制器获取第一数据;控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据;控制器将第二数据存储至存储器;和/或,控制器向加速器发送第二数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。
背景技术
数据处理任务中,控制器常用于对数据进行数据格式转换处理。
相关技术中,一个控制器一般只支持一种数据格式转换功能,当需要进行多种形式的数据格式转换处理时,需要利用不同的控制器进行多种形式的数据格式转换处理,因此,数据处理系统中通常需要设置多个不同的控制器。
然而,将数据输入不同的控制器中进行格式转换处理,数据处理效率受影响;同时,集成的多个控制器限制数据处理系统的处理性能,数据处理效率进一步受到影响。
发明内容
本申请提供一种数据处理技术方案。
第一方面,本申请实施例提供一种数据处理方法,所述方法应用于一种数据处理系统,所述数据处理系统包括存储器和可编程器件,所述存储器与所述可编程器件之间通过总线进行数据传输,所述可编程器件上部署了控制器和加速器,所述控制器支持至少两种数据格式转换功能;
所述方法包括:
所述控制器获取第一数据;
所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据;
所述控制器将所述第二数据存储至所述存储器;
和/或,所述控制器向所述加速器发送所述第二数据。
结合本申请一个或多个实施例,所述控制器获取第一数据,包括:
所述控制器从所述加速器中获取所述第一数据,和/或,所述控制器从所述存储器中获取所述第一数据。
结合本申请一个或多个实施例,所述第一数据包括至少一个第一数据行;所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:
所述控制器删除所述至少一个第一数据行中的每一个第一数据行的空白数据,得到与所述至少一个第一数据行对应的至少一个第二数据行;
所述控制器对所述至少一个第二数据行进行拼接处理,得到第一目标数据,并将所述第一目标数据确定为所述第二数据,其中,所述第一目标数据包括至少一个第三数据行,每一个所述第三数据行的行宽与所述总线的位宽相同。
结合本申请一个或多个实施例,在得到与所述至少一个第一数据行对应的至少一个第二数据行后,所述方法还包括:
所述控制器对每一个所述第二数据行中的数据进行运算格式转换,得到与所述至少一个第二数据行对应的至少一个第四数据行;
所述控制器对所述至少一个第四数据行进行拼接处理,得到第二目标数据,并把所述第二目标数据确定为所述第二数据,其中,所述第二目标数据包括至少一个第五数据行,每一个所述第五数据行的行宽与所述总线的位宽相同。
结合本申请一个或多个实施例,所述第一数据包括至少一个第六数据行,所述第六数据行包括至少一种类别的数据;
所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:
所述控制器将所述至少一个第六数据行中的每一个第六数据行中的相同类别的数据组合成一个第一子数据行,得到与所述至少一个第六数据行对应的至少一个第一子数据行,并把所述至少一个第一子数据行确定为所述第二数据,其中,每一个所述第一子数据行的行宽与所述总线的位宽相同。
结合本申请一个或多个实施例,所述第一数据包括至少两路,至少两路第一数据依次横向拼接;所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:
根据所述至少两路第一数据依次横向拼接的顺序,对所述至少两路第一数据进行纵向首尾拼接,并把纵向首尾拼接得到的数据确定为所述第二数据。
结合本申请一个或多个实施例,所述控制器获取第一数据,包括:
所述控制器获取多路数据,并从所述多路数据中选取至少部分第一数据。
结合本申请一个或多个实施例,所述控制器包括直接内存存取器DMA。
结合本申请一个或多个实施例,所述存储器包括双倍速率同步动态随机存储器DDR,所述可编程器件包括现场可编程逻辑门阵列FPGA,所述加速器包括卷积神经网络CNN加速器。
第二方面,本申请提供一种数据处理装置,本装置包括存储器和可编程器件,所述存储器与所述可编程器件之间通过总线进行数据传输,所述可编程器件上部署了控制器和加速器,所述控制器支持至少两种数据格式转换功能;
所述控制器包括:
获取单元,用于获取第一数据;
第一处理单元,用于对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据;
第二处理单元,用于将所述第二数据存储至所述存储器;
和/或,向所述加速器发送所述第二数据。
结合本申请一个或多个实施例,所述获取单元用于从所述加速器中获取所述第一数据,和/或,所述控制器从所述存储器中获取所述第一数据。
结合本申请一个或多个实施例,第一处理单元,包括:
第一处理子单元,用于删除所述至少一个第一数据行中的每一个第一数据行的空白数据,得到与所述至少一个第一数据行对应的至少一个第二数据行;
第二处理子单元,用于对所述至少一个第二数据行进行拼接处理,得到第一目标数据,并将所述第一目标数据确定为所述第二数据,其中,所述第一目标数据包括至少一个第三数据行,每一个所述第三数据行的行宽与所述总线的位宽相同。
结合本申请一个或多个实施例,第一处理单元还包括:
第三处理子单元,用于在得到与所述至少一个第一数据行对应的至少一个第二数据行后,对每一个所述第二数据行中的数据进行运算格式转换,得到与所述至少一个第二数据行对应的至少一个第四数据行;
第四处理子单元,用于对所述至少一个第四数据行进行拼接处理,得到第二目标数据,并把所述第二目标数据确定为所述第二数据,其中,所述第二目标数据包括至少一个第五数据行,每一个所述第五数据行的行宽与所述总线的位宽相同。
结合本申请一个或多个实施例,所述第一数据包括至少一个第六数据行,所述第六数据行包括至少一种类别的数据,第一处理单元还包括:
第五处理子单元,用于将所述至少一个第六数据行中的每一个第六数据行中的相同类别的数据组合成一个第一子数据行,得到与所述至少一个第六数据行对应的至少一个第一子数据行,并把所述至少一个第一子数据行确定为所述第二数据,其中,每一个所述第一子数据行的行宽与所述总线的位宽相同。
结合本申请一个或多个实施例,所述第一数据包括至少两路,至少两路第一数据依次横向拼接,第一处理单元还包括:
第六处理子单元,用于根据所述至少两路第一数据依次横向拼接的顺序,对所述至少两路第一数据进行纵向首尾拼接,并把纵向首尾拼接得到的数据确定为所述第二数据。
结合本申请一个或多个实施例,所述获取单元还用于:
获取多路数据,并从所述多路数据中选取至少部分第一数据。
结合本申请一个或多个实施例,所述控制器包括直接内存存取器DMA。
结合本申请一个或多个实施例,所述存储器包括双倍速率同步动态随机存储器DDR,所述可编程器件包括现场可编程逻辑门阵列FPGA,所述加速器包括卷积神经网络CNN加速器。
第三方面,本申请提供一种数据处理设备,包括:处理器、存储器以及计算机程序;
其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如上任一项的方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现如上任一项的方法。
本申请提供一种数据处理方法、装置、设备和存储介质,其中,方法应用于一种数据处理系统,数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能;其中,方法包括:控制器获取第一数据;控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据;控制器将第二数据存储至存储器;和/或,控制器向加速器发送第二数据。本方法能够实现多种格式的数据转换处理,具有数据转换集成功能,能够有效提高数据格式转换效率,和有效提高数据处理的处理效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的又一种数据处理方法的流程示意图;
图2a为本实施例提供的一种格式转换处理过程示意图;
图2b为本实施例提供的一种格式转换前后的数据示意图;
图2c为本实施例提供的另一种格式转换处理过程示意图;
图2d为本实施例提供的另一种格式转换处理过程示意图;
图2e为本实施例提供的另一种格式转换前后的数据示意图;
图2f为本实施例提供的再一种格式转换处理过程示意图;
图2g为本实施例提供的再一种格式转换前后的数据示意图;
图3为本申请实施例提供的一种数据处理装置的结构示意图;
图4为本申请实施例提供的又一种数据处理装置的结构示意图;
图5为本申请实施例提供的一种数据处理设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本申请涉及的名词解释:
数据格式:data format,指数据保存在文件或记录中的编排格式。
总线:计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,根据计算机所传输的信息种类不同,计算机的总线可以划分为数据总线、地址总线和控制总线,其分别用来传输数据、数据地址和控制信号。
总线位宽:指总线能够同时传送的二进制数据的位数。
定点数:小数点在数中的位置是固定不变的,通常包括定点整数和定点小数或者定点分数。在对小数点位置做出选择之后,运算中的所有数均应统一为定点整数或定点小数,在运算中不再考虑小数点的位置问题。
浮点数:小数点的位置是不固定的,用指数和尾数来表示。通常尾数为纯小数,指数为整数,尾数和指数均为带符号数。尾数的符号表示数的正负;指数的符号则表明小数点的实际位置。
DMA:Direct Memory Access,直接存储器存取器,是一种快速传送数据的机制,在利用DMA进行数据存取时不需要CPU进行干预,可提高系统执行应用程序的效率。
OpenCV:Open Source Computer Vision Library,开源计算机视觉库,一个基于BSD许可(开源)发行的跨平台计算机视觉库。
AXI:Advanced eXtensible Interface,一种总线协议。
feature map:特征图。
Caffe:Convolutional Architecture for Fast Feature Embedding,卷积神经网络架构。
AMBA:Advanced Microcontroller Bus Architecture,片上总线协议。
CPU:Central Processing Unit,中央处理器。
IP核:Intellectual Property core,知识产权核,按IP核的硬件描述级实现程序,包括软核、硬核和固核。
缓存器FIFO:First Input First Output,先进先出存储器。
ARM处理器:Advanced RISC Machines,一款低功耗低成本的RISC微处理器。
本申请的应用场景可以为:数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署有控制器和加速器。在利用数据处理系统进行数据处理时,利用加速器对数据进行不同方式的运算处理。运算处理的方式不同,加速器所要求的数据格式不同,此时利用控制器对数据进行相应的格式转换处理。例如,在基于片上总线协议AMBA总线的深度学习算法中,在利用加速器对中央处理器CPU或者基于卷积神经网络框架Caffe处理后的代码进行进一步的运算处理前,利用控制器对代码进行格式转换处理;深度学习算法中,在利用加速器对IP核输出的特征图进行运算处理前,利用控制单元对特征图进行格式转换处理;开源计算机视觉库OpenCV处理后的图片存储在双倍速率同步动态随机存储器DDR中,在利用加速器对OpenCV处理后的图片进行运算处理前,利用控制单元通过AXI-MM总线直接从DDR中获取OpenCV处理后的图片进行格式转换处理。
本申请提供一种数据处理方法、装置、设备和存储介质。
图1为本申请实施例提供的一种数据处理方法的流程示意图,本方法应用于一种数据处理系统,数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能,如图1所示,执行包括:
步骤101、控制器获取第一数据。
在本实施例中,具体的,数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,存储器用于存储可编程器件待处理的原始数据,和/或存储可编程器件处理的中间数据,和/或存储可编程器件处理后的最终数据。可编程器件包括加速器和控制器,加速器用于对数据进行不同方式的运算处理,例如利用加速器对CPU或者Caffe处理后的代码进行运算处理,或者利用加速器对IP核输出的特征图进行运算处理,或者利用加速器对OpenCV处理后的图片进行运算处理。在利用加速器对数据进行不同方式的运算处理的过程中,加速器所要求的数据格式不同,因此,在将数据输入加速器进行运算处理前,根据加速器所要求的数据格式,利用控制器对数据进行格式转换处理。由于控制器支持至少两种数据格式转换功能,因此控制器能够根据加速器的不同数据格式要求,对数据进行不同的数据格式转换处理。因此,在数据处理系统中未部署多个控制器的情况下,即可实现多种形式的数据格式转换处理,数据处理系统结构简单,数据处理性能优越,能够满足数据处理系统对数据读取速度和数据多样化格式的双重需求。
控制器获取第一数据包括控制器从加速器中获取第一数据,和/或,控制器从存储器中获取第一数据。在加速器对数据进行运算处理后,控制器获取加速器运算处理后的数据作为第一数据,进行数据格式转换处理,和/或,控制器直接从存储器中获取数据作为第一数据,进行数据格式转换处理。在加速器对数据进行完成前续的运算处理后,控制器从加速器中获取运算处理后的数据作为第一数据,并根据加速器进行后续的运算处理所要求的数据格式,对第一数据进行数据格式转化处理,得到目标数据格式的第二数据,有利于保证数据处理的高效进行;当其他处理器或加速器需要从存储器中获取数据进行数据处理时,利用控制器从存储器中获取数据作为第一数据,并根据其他处理器或加速器的数据格式要求,对第一数据进行数据格式转换处理,得到符合目标数据格式的第二数据,并把第二数据发送其他处理器或加速器,供其他处理器或加速器在接收到第二数据后进行其他数据处理,有效保证了数据处理的正常进行,有利于提高数据处理的处理效率。
步骤102、控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据。
在本实施例中,具体的,在利用加速器进行不同方式的运算处理时,加速器所要求的数据格式不同。加速器所要求的数据格式,即为控制器进行数据格式转换处理的目标数据格式。控制器根据加速器所要求的数据格式,对获取的第一数据进行多种形式的数据格式转换处理,得到符合目标数据格式的第二数据。控制器支持多种数据格式转换功能,能够得到多种目标数据格式的第二数据,示例性的,目标数据格式包括数据行宽与总线位宽相同;在数据行宽与总线位宽相同的同时,数据的运算格式为32位的浮点数;相同数据行为连续的BGR格式数据等。
步骤103、控制器将第二数据存储至存储器;和/或,控制器向加速器发送第二数据。
在本实施例中,具体的,数据处理系统还包括ARM处理器,ARM处理器通过总线与存储器、可编程器件进行数据传输。在利用控制器对数据进行数据格式转换处理,得到目标数据格式的第二数据后,控制器将第二数据存储至存储器中,ARM处理器直接从存储器中获取第二数据进行相应处理,同时,加速器也可直接从存储器中获取第二数据进行运算处理。此外,控制器还可直接将目标数据格式的第二数据向加速器发送,供加速器在接收到目标数据格式的第二数据之后,直接对第二数据进行运算处理。通常,一个控制器支持一种数据格式转换功能,在需要对数据进行多种形式的数据格式转换处理的情况下,需要将加速器输出的数据或者从存储器中获取的数据切换至不同的控制器中进行数据格式转换处理。由于本申请实施例中的控制器支持多种数据格式转换功能,能够进行多种形式的数据格式转换处理,得到满足不同目标数据格式的第二数据,因此,数据处理系统中可以通过部署一个具有多数据格式转换功能的控制器,来实现多功能的集成化的数据转换处理。
本实施例公开的数据处理方法,应用于一种数据处理系统,数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能;其中,方法包括:控制器获取第一数据;控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据;控制器将第二数据存储至存储器;和/或,控制器向加速器发送第二数据。相比于相关技术中的控制器支持单种数据格式转换功能,当需要进行不同形式的数据格式转换处理时,利用与目标数据格式对应的控制器对数据进行数据格式转换处理,数据处理系统中需要集成有多个控制器,本实施例中的控制器支持多种数据格式转换功能,具有数据转换集成功能,节省了频繁切换至不同的控制器进行数据格式转换所耗费的资源,提高了数据格式转换效率高,有利于提高数据处理的处理效率。
图2为本申请实施例提供的又一种数据处理方法的流程示意图,本方法应用于一种数据处理系统,数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能,如图2所示,执行包括:
步骤201、控制器从加速器中和/或从存储器中获取第一数据。
在本实施例中,具体的,本步骤可以参见图1的步骤101,不再赘述。
步骤202、控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据。
可选的,第一数据包括至少一个第一数据行,步骤202包括:控制器删除至少一个第一数据行中的每一个第一数据行的空白数据,得到与至少一个第一数据行对应的至少一个第二数据行;控制器对至少一个第二数据行进行拼接处理,得到第一目标数据,并将第一目标数据确定为第二数据,其中,第一目标数据包括至少一个第三数据行,每一个第三数据行的行宽与总线的位宽相同。
在利用控制器对第一数据进行格式转换处理时,根据格式转换处理后数据待输入的加速器或存储器的数据格式要求,对第一数据进行数据格式转换处理。数据格式转换处理包括将第一数据输入控制器的第一缓存器中,并在第一缓存器中对将构成第一数据中的每一个第一数据行中的空白数据进行删除处理,实现将第一数据中的至少一个第一数据行转换为至少一个连续的第二数据行,至少一个第二数据行与至少一个第一数据行具有对应关系;把至少一个第二数据行输入控制器的第二缓存器中,并在第二缓存器中对至少一个第二数据行进行拼接处理,得到第一目标数据,并将第一目标数据确定为第二数据。第二数据中的每一个数据行的行宽与总线位宽相同,每一个数据行的行宽与总线位宽相同的含义包括每一个数据行包括的数据位数与总线能够传递的最大位数相同。
示例性的,图2a为本实施例提供的一种格式转换处理过程示意图,图2b为本实施例提供的一种格式转换前后的数据示意图,如图2a所示,控制器通过AXI总线从加速器的第一计算单元中获取第一数据,第一计算单元为加速器中对数据完成前续的运算处理的计算单元,如图2b所示,第一数据包括四个第一数据行,四个第一数据行分别为:L1、L2、L3、L4,每一个第一数据行中包括8个数据,其中,每一个第一数据行中的8个数据中包括1个空白数据,每个数据为8bit,AXI总线能够容纳8个数据。根据该路第一数据的目标格式要求,对该路第一数据进行如下格式转化处理:将该路第一数据输入第一缓存器FIFO_0中进行连续处理,具体的,对第一数据中的四个第一数据行中的空白数据进行删除处理,得到四个第二数据行,其中,四个第二数据行与第一数据中原始的四个第一数据行相对应。每一个第二数据行中包括7个数据,对四个第二数据行进行拼接处理,并将拼接处理得到的数据输入第二缓存器FIFO_1中进行对齐处理,得到第一目标数据,并把第一目标数据确定为第二数据,并把第二数据发送加速器的第二计算单元,第二计算单元为加速器中待针对第二数据进行后续运算处理的计算单元,其中,第二缓存器FIFO_1与AXI总线位宽相同(均为64位),每一个数据行的宽度与AXI总线位宽相同,假设最后一个数据行中的数据量少于AXI总线位宽对应的数据量时,通过补零的方式填充最后一个数据行,实现最后一个数据行的行宽与AXI总线位宽相同,进而实现第二数据的全部数据行的行宽与AXI总线位宽相同。
在得到与至少一个第一数据行对应的至少一个第二数据行后,方法还包括:将控制器对每一个第二数据行中的数据进行运算格式转换,得到与至少一个第二数据行对应的至少一个第四数据行;控制器对至少一个第四数据行进行拼接处理,得到第二目标数据,并把第二目标数据确定为第二数据,其中,第二目标数据包括至少一个第五数据行,每一个第五数据行的行宽与总线的位宽相同。
在对第一数据的每一个第一数据行进行空白数据删除,得到与至少一个第一数据行对应的至少一个第二数据行后,将至少一个第二数据行输入控制器的第三缓存器中,并在控制器的第三缓存器中对剩余的非空白数据进行运算格式转换处理,将剩余的非空白数据由当前的运算格式转换为预设的运算格式,即对每一个第二数据行进行运算格式转换处理,得到至少一个第四数据行,示例性的,将剩余的非空白数据由8bit定点数转换为64bit浮点数。对至少一个第四数据行进行拼接处理,得到第二目标数据,并把第二目标数据确定为第二数据,其中,第二目标数据包括至少一个第五数据行,每一个第五数据行的行宽与总线的位宽相同。
示例性的,图2c为本实施例提供的另一种格式转换处理过程示意图,在图2a的基础上,在第一数据进行完成连续处理后,将处理后的数据输入第三缓存器FIFO_2进行运算格式转换处理,然后将运算格式转换处理后的数据输入第二缓存器FIFO_1进行对齐处理。
控制器的第一缓存器、第二缓存器和第三缓存器中的任一缓存器中的数据均可作为数据格式转换处理后的数据直接输出,具体直接输出至加速器或存储器中。从控制器的第一缓存器输出的数据为对第一数据进行空白数据删除处理后的数据;从控制器的第三缓存器输出的数据为对第一数据进行空白数据删除处理,且进行运算格式转换处理的数据;从控制器的第二缓存器输出的数据为第一目标数据,即对第一数据进行空白数据删除处理、运算格式转换处理和对齐处理的数据。
第一数据包括至少一个第六数据行,第六数据行包括至少一种类别的数据;控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:控制器将至少一个第六数据行中的每一个第六数据行中的相同类别的数据组合成一个第一子数据行,得到与至少一个第六数据行对应的至少一个第一子数据行,并把至少一个第一子数据行确定为第二数据,其中,每一个第一子数据行的行宽与总线的位宽相同。
第一数据包括至少一个第六数据行,其中一个第六数据行可能包括多种类别的数据,也可能包括一种类别的数据。将第一数据输入控制器的第四缓存器中,在第六数据行中包括多种类别数据的情况下,将第六数据行中相同类别的数据组合成一个第一子数据行,一个第六数据行转换成多个第一子数据行;在第六数据行中包括一种类别数据的情况下,第六数据行对应的第一子数据行与第六数据行相同。在得到与至少一个第六数据行对应的至少一个第一子数据行后,将至少一个第一子数据行输入控制器的第五缓存器中,并在控制器的第五缓存器中对至少一个第一子数据行进行对齐处理,得到第二数据,第二数据的每一个第一子数据行包括相同类别的数据,且每一个第一子数据行的行宽与总线的位宽相同。
示例性的,图2d为本实施例提供的另一种格式转换处理过程示意图,图2e为本实施例提供的另一种格式转换前后的数据示意图,如图2d和2e所示,通过AXI总线从加速器的第一计算单元中获取的第一数据包括至少一个第六数据行,其中存在一个第六数据行包括R、G、B三种类别的数据,具体的,该第六数据行包括7个R数据、7个G数据和7个B数据,每一个数据大小为8bit,AXI总线最大能够容纳64bit数据,因此,AXI总线最大能能够容纳8个数据。将第一数据输入控制器的第四缓存器FIFO_3中,并将该第六数据行中相同类别的数据组合成一个第一子数据行,实现将该第六数据行转换成三个第一子数据行,三个第一子数据行中的每一个第一子数据行分别包括7个R数据、7个G数据和7个B数据。在得到与至少一个第六数据行对应的至少一个第一子数据行后,将至少一个第一子数据行输入控制器的第五缓存器FIFO_4中进行对齐处理,得到第二数据,并把第二数据发送加速器的第二计算单元中,由于第五缓存器FIFO_4与AXI总线位宽相同(均为64位),因此第二数据的每一个第一子数据行的宽度与AXI总线位宽相同。
可选的,在得到与至少一个第六数据行对应的至少一个第一子数据行后,对至少一个第一子数据行的每一个第一子数据行进行减均值处理,示例性的,对每一个第一子数据行中的R、G、B三个类别的数据各减去一个经验值。通过对每一个第一子数据行进行减均值处理,能够移除每一个第一子数据行的共同内容,增强每一个第一子数据行的差异内容。在深度学习的图像预处理过程中,通过减均值处理可以实现对样本图像的标准化。
控制器获取到至少两路第一数据,至少两路第一数据依次横向拼接;控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:根据至少两路第一数据依次横向拼接的顺序,对至少两路第一数据进行纵向首尾拼接,并把纵向首尾拼接得到的数据确定为第二数据。
控制器从加速器或存储器中获取的第一数据包括横向拼接的至少两路第一数据,控制器对获取的至少两路第一数据进行格式转换处理,包括:将依次横向拼接的至少两路第一数据输入至控制器的第六缓存器中,并在控制器的第六缓存器中将依次横向拼接的至少两路第一数据转换成依次纵向拼接的至少两路第一数据,得到第二数据,其中,依次纵向拼接的至少两路第一数据从上至下依次拼接的顺序,与数据格式转换处理前的依次横向拼接的至少两路第一数据从左至右依次拼接的顺序相同。可选的,在得到依次纵向拼接的至少两路第一数据后,继续对依次纵向拼接的至少两路第一数据中的每一个数据行进行连续处理和对齐处理,得到第二数据,连续处理和对齐处理过程可参考上述处理过程,在此不做赘述。
示例性的,图2f为本实施例提供的再一种格式转换处理过程示意图,图2g为本实施例提供的再一种格式转换前后的数据示意图,如图2f和2g所示,获取的n路第一数据依次横向拼接,n为大于1的整数,将依次横向拼接的n路第一数据输入控制器的第六缓存器FIFO_5中进行数据格式转换处理,如图2g所示,将依次横向拼接的n路第一数据转换为依次纵向拼接的n路第一数据,依次纵向拼接的n路第一数据从上至下依次拼接的第一数据顺序,与数据格式转换处理前的依次横向拼接的n路第一数据从左至右依次拼接的第一数据顺序相同。n路第一数据依次横向拼接的方式包括n路第一数据中具有相同行次序的数据行依次横向拼接,n路第一数据依次纵向拼接的方式包括n路第一数据的首尾数据行依次拼接。
由于控制器的格式转换空间是有限的,或者数据处理任务不同,所要求进行数据转换处理的数据不同,本实施例方法还包括控制器获取多路数据,并从多路数据中选取至少部分第一数据。具体的,从获取的M路第一数据中获取N路第一数据进行格式转换处理,其中,M、N为不小于1的正整数,且M≥N,即从获取的多路第一数据中选择部分第一数据进行格式转换处理,其余部分的第一数据通过暂时缓存处理等待进行格式转换。
可选的,在对大量数据进行格式转换处理时,为进一步提高数据格式转换处理的处理效率,本实施例方法采用ping-pong数据缓存方式,在控制器的第一单元中进行数据格式转换处理的同时,在第二单元中进行数据缓存来为数据格式转换处理做准备。在第二单元中缓存的数据量满足数据格式转换处理所要求的数据量后,当第一单元中进行的数据格式转换处理完成时,利用第二单元进行数据格式转换处理,利用第一单元进行数据缓存处理。第一单元与第二单元的划分根据待格式转换处理的数据量大小以及数据格式转换处理所要求的数据量大小来进行,该种设计能够实现在提高数据格式转换处理效率的同时,有效降低对格式转换单元的性能要求。
步骤203、控制器将第二数据存储至存储器;和/或,控制器向加速器发送第二数据。
在本实施例中,具体的,控制器在得到目标格式的第二数据后,将第二数据发送至加速器进行后续的运算处理,和/或,将第二数据存储至存储器中进行缓存或者供其他处理器从存储器中获取第二数据进行其他处理。示例性的,控制器获取加速器输出的特征图,在对特征图进行格式转换处理后,将格式转化处理得到的第二数据存储至存储器中,以供其他处理器从存储器中调用第二数据进行后续的数据处理。
可选的,本申请实施例中的控制器包括直接内存存取器DMA,存储器包括双倍速率同步动态随机存储器DDR,可编程器件包括现场可编程逻辑门阵列FPGA,加速器包括卷积神经网络CNN加速器。
本实施例提供的数据格式转换处理方法适用于无人驾驶、安防监控、智能视频分析等需要对多种数据格式要求的数据进行不同数据处理的多样化领域中。
本实施例方法应用于一种数据处理系统,数据处理系统包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能;其中方法包括控制器从加速器中和/或从存储器中获取第一数据;控制器对第一数据进行数据格式转换,以得到目标数据格式的第二数据;控制器将第二数据存储至存储器;和/或,控制器向加速器发送第二数据。本实施例方法支持进行多种形式的数据格式转换处理,具有数据转换集成功能,能够有效减小数据格式处理的时间消耗,提高数据格式转换处理的效率;利用同一公用总线实现多种数据格式转换处理的无缝切换,有利于降低数据转换处理的资源消耗;不需要针对每一种数据格式转换处理设计不同的控制器,能够有效避免出现相同数据格式转换处理重复占用不同控制器的情况,利用同一控制器对至少一路第一数据进行多种格式的数据转换处理,数据转换处理效率高,在满足数据处理的多种数据格式要求的同时,有利于提高数据处理的处理效率,提高数据处理系统的处理性能。
图3为本申请实施例提供的一种数据处理装置的结构示意图,如图3所示,该装置包括:
存储器1和可编程器件2,存储器1与可编程器件2之间通过总线3进行数据传输,可编程器件2上部署了控制器21和加速器22,控制器支持至少两种数据格式转换功能;
控制器21用于:
获取单元211,用于获取第一数据;
第一处理单元212,用于对第一数据进行数据格式转换,以得到目标数据格式的第二数据;
第二处理单元213,用于将第二数据存储至存储器;
和/或,向加速器发送第二数据。
本实施例公开的数据处理装置包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能;其中,控制器用于获取第一数据;对第一数据进行数据格式转换,以得到目标数据格式的第二数据;将第二数据存储至存储器;和/或,向加速器发送第二数据。相比于相关技术中的控制器支持单种数据格式转换功能,当需要进行不同形式的数据格式转换处理时,利用与目标数据格式对应的控制器对数据进行数据格式转换处理,数据处理系统中需要集成有多个控制器,本实施例中的控制器支持多种数据格式转换功能,具有数据转换集成功能,由于不需要切换至不同的控制器进行数据格式转换处理,数据格式转换效率高,有利于提高数据处理的处理效率。
图4为本申请实施例提供的又一种数据处理装置的结构示意图,在图3所示实施例的基础上,如图4所示,
获取单元211用于从加速器中获取第一数据,和/或,控制器从存储器中获取第一数据。
第一处理单元212,包括:
第一处理子单元2121,用于删除至少一个第一数据行中的每一个第一数据行的空白数据,得到与至少一个第一数据行对应的至少一个第二数据行;
第二处理子单元2122,用于对至少一个第二数据行进行拼接处理,得到第一目标数据,并将第一目标数据确定为第二数据,其中,第一目标数据包括至少一个第三数据行,每一个第三数据行的行宽与总线的位宽相同。
第一处理单元还包括:
第三处理子单元2123,用于在得到与至少一个第一数据行对应的至少一个第二数据行后,对每一个第二数据行中的数据进行运算格式转换,得到与至少一个第二数据行对应的至少一个第四数据行;
第四处理子单元2124,用于对至少一个第四数据行进行拼接处理,得到第二目标数据,并把第二目标数据确定为第二数据,其中,第二目标数据包括至少一个第五数据行,每一个第五数据行的行宽与总线的位宽相同。
第一数据包括至少一个第六数据行,第六数据行包括至少一种类别的数据,第一处理单元还包括:
第五处理子单元2125,用于将至少一个第六数据行中的每一个第六数据行中的相同类别的数据组合成一个第一子数据行,得到与至少一个第六数据行对应的至少一个第一子数据行,并把至少一个第一子数据行确定为第二数据,其中,每一个第一子数据行的行宽与总线的位宽相同。
第一数据包括至少两路,至少两路第一数据依次横向拼接,第一处理单元还包括:
第六处理子单元2126,用于根据至少两路第一数据依次横向拼接的顺序,对至少两路第一数据进行纵向首尾拼接,并把纵向首尾拼接得到的数据确定为第二数据。
获取单元211还用于:
获取多路数据,并从多路数据中选取至少部分第一数据。
其中,控制器包括直接内存存取器DMA,存储器包括双倍速率同步动态随机存储器DDR,可编程器件包括现场可编程逻辑门阵列FPGA,加速器包括卷积神经网络CNN加速器。
本实施例公开一种数据处理装置,包括存储器和可编程器件,存储器与可编程器件之间通过总线进行数据传输,可编程器件上部署了控制器和加速器,控制器支持至少两种数据格式转换功能;其中,控制器用于从加速器中和/或从存储器中获取第一数据;对第一数据进行数据格式转换,以得到目标数据格式的第二数据;将第二数据存储至存储器;和/或,向加速器发送第二数据。本实施例方法支持进行多种形式的数据格式转换处理,具有数据转换集成功能,能够有效减小数据格式处理的时间消耗,提高数据格式转换处理的效率;利用同一公用总线实现多种数据格式转换处理的无缝切换,有利于降低数据转换处理的资源消耗;不需要针对每一种数据格式转换处理设计不同的控制器,能够有效避免出现相同数据格式转换处理重复占用不同控制器的情况,利用同一控制器对至少一路第一数据进行多种格式的数据转换处理,数据转换处理效率高,在满足数据处理的多种数据格式要求的同时,有利于提高数据处理的处理效率,提高数据处理系统的处理性能。
图5为本申请实施例提供的一种数据处理设备的结构示意图,如图5所示,本申请实施例提供了一种数据处理设备,可以用于执行图1-图2所示实施例中数据处理设备动作或步骤,具体包括:处理器501,存储器502和通信接口503。
存储器502,用于存储计算机程序。
处理器501,用于执行存储器502中存储的计算机程序,以实现图1-图4所示实施例中数据处理设备的动作,不再赘述。
可选的,数据处理设备还可以包括总线504。其中,处理器501、存储器502以及通信接口503可以通过总线504相互连接;总线504可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。上述总线504可以分为地址总线、数据总线和控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,上述各实施例之间可以相互参考和借鉴,相同或相似的步骤以及名词均不再一一赘述。
或者,以上各个模块的部分或全部也可以通过集成电路的形式内嵌于该轨迹预测设备的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些模块可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、轨迹预测设备或数据中心通过有线(例如,同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、轨迹预测设备或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的轨迹预测设备、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (20)
1.一种数据处理方法,其特征在于,所述方法应用于一种数据处理系统,所述数据处理系统包括存储器和可编程器件,所述存储器与所述可编程器件之间通过总线进行数据传输,所述可编程器件上部署了控制器和加速器,所述控制器支持至少两种数据格式转换功能;
所述方法包括:
所述控制器获取第一数据;
所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据;
所述控制器将所述第二数据存储至所述存储器;
和/或,所述控制器向所述加速器发送所述第二数据。
2.根据权利要求1所述的方法,其特征在于,所述控制器获取第一数据,包括:
所述控制器从所述加速器中获取所述第一数据,和/或,所述控制器从所述存储器中获取所述第一数据。
3.根据权利要求1或2所述的方法,其特征在于,所述第一数据包括至少一个第一数据行;所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:
所述控制器删除所述至少一个第一数据行中的每一个第一数据行的空白数据,得到与所述至少一个第一数据行对应的至少一个第二数据行;
所述控制器对所述至少一个第二数据行进行拼接处理,得到第一目标数据,并将所述第一目标数据确定为所述第二数据,其中,所述第一目标数据包括至少一个第三数据行,每一个所述第三数据行的行宽与所述总线的位宽相同。
4.根据权利要求3所述的方法,其特征在于,在得到与所述至少一个第一数据行对应的至少一个第二数据行后,所述方法还包括:
所述控制器对每一个所述第二数据行中的数据进行运算格式转换,得到与所述至少一个第二数据行对应的至少一个第四数据行;
所述控制器对所述至少一个第四数据行进行拼接处理,得到第二目标数据,并把所述第二目标数据确定为所述第二数据,其中,所述第二目标数据包括至少一个第五数据行,每一个所述第五数据行的行宽与所述总线的位宽相同。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一数据包括至少一个第六数据行,所述第六数据行包括至少一种类别的数据;
所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:
所述控制器将所述至少一个第六数据行中的每一个第六数据行中的相同类别的数据组合成一个第一子数据行,得到与所述至少一个第六数据行对应的至少一个第一子数据行,并把所述至少一个第一子数据行确定为所述第二数据,其中,每一个所述第一子数据行的行宽与所述总线的位宽相同。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一数据包括至少两路,至少两路第一数据依次横向拼接;所述控制器对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据,包括:
根据所述至少两路第一数据依次横向拼接的顺序,对所述至少两路第一数据进行纵向首尾拼接,并把纵向首尾拼接得到的数据确定为所述第二数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述控制器获取第一数据,包括:
所述控制器获取多路数据,并从所述多路数据中选取至少部分第一数据。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述控制器包括直接内存存取器DMA。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述存储器包括双倍速率同步动态随机存储器DDR,所述可编程器件包括现场可编程逻辑门阵列FPGA,所述加速器包括卷积神经网络CNN加速器。
10.一种数据处理装置,其特征在于,包括存储器和可编程器件,所述存储器与所述可编程器件之间通过总线进行数据传输,所述可编程器件上部署了控制器和加速器,所述控制器支持至少两种数据格式转换功能;
所述控制器包括:
获取单元,用于获取第一数据;
第一处理单元,用于对所述第一数据进行数据格式转换,以得到目标数据格式的第二数据;
第二处理单元,用于将所述第二数据存储至所述存储器;
和/或,向所述加速器发送所述第二数据。
11.根据权利要求10所述的装置,其特征在于,所述获取单元用于从所述加速器中获取所述第一数据,和/或,所述控制器从所述存储器中获取所述第一数据。
12.根据权利要求10或11所述的装置,其特征在于,第一处理单元,包括:
第一处理子单元,用于删除所述至少一个第一数据行中的每一个第一数据行的空白数据,得到与所述至少一个第一数据行对应的至少一个第二数据行;
第二处理子单元,用于对所述至少一个第二数据行进行拼接处理,得到第一目标数据,并将所述第一目标数据确定为所述第二数据,其中,所述第一目标数据包括至少一个第三数据行,每一个所述第三数据行的行宽与所述总线的位宽相同。
13.根据权利要求12所述的装置,其特征在于,第一处理单元还包括:
第三处理子单元,用于在得到与所述至少一个第一数据行对应的至少一个第二数据行后,对每一个所述第二数据行中的数据进行运算格式转换,得到与所述至少一个第二数据行对应的至少一个第四数据行;
第四处理子单元,用于对所述至少一个第四数据行进行拼接处理,得到第二目标数据,并把所述第二目标数据确定为所述第二数据,其中,所述第二目标数据包括至少一个第五数据行,每一个所述第五数据行的行宽与所述总线的位宽相同。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述第一数据包括至少一个第六数据行,所述第六数据行包括至少一种类别的数据,第一处理单元还包括:
第五处理子单元,用于将所述至少一个第六数据行中的每一个第六数据行中的相同类别的数据组合成一个第一子数据行,得到与所述至少一个第六数据行对应的至少一个第一子数据行,并把所述至少一个第一子数据行确定为所述第二数据,其中,每一个所述第一子数据行的行宽与所述总线的位宽相同。
15.根据权利要求10-14任一项所述的装置,其特征在于,所述第一数据包括至少两路,至少两路第一数据依次横向拼接,第一处理单元还包括:
第六处理子单元,用于根据所述至少两路第一数据依次横向拼接的顺序,对所述至少两路第一数据进行纵向首尾拼接,并把纵向首尾拼接得到的数据确定为所述第二数据。
16.根据权利要求10-15任一项所述的装置,其特征在于,所述获取单元还用于:
获取多路数据,并从所述多路数据中选取至少部分第一数据。
17.根据权利要求10-16任一项所述的装置,其特征在于,所述控制器包括直接内存存取器DMA。
18.根据权利要求10-17任一项所述的装置,其特征在于,所述存储器包括双倍速率同步动态随机存储器DDR,所述可编程器件包括现场可编程逻辑门阵列FPGA,所述加速器包括卷积神经网络CNN加速器。
19.一种数据处理设备,其特征在于,包括:处理器、存储器以及计算机程序;
其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如1-9任一项的方法。
20.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行以实现如1-9任一项的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911379730.6A CN111176725B (zh) | 2019-12-27 | 2019-12-27 | 数据处理方法、装置、设备和存储介质 |
PCT/CN2020/098173 WO2021128776A1 (zh) | 2019-12-27 | 2020-06-24 | 数据处理方法、装置、设备、系统、存储介质和程序产品 |
JP2020564063A JP2022518636A (ja) | 2019-12-27 | 2020-06-24 | データ処理方法、装置、設備、システム、記憶媒体及びプログラム製品 |
SG11202011214XA SG11202011214XA (en) | 2019-12-27 | 2020-06-24 | Data processing method, apparatus, device, and system, storage medium, and program product |
US17/097,971 US11314457B2 (en) | 2019-12-27 | 2020-11-13 | Data processing method for data format conversion, apparatus, device, and system, storage medium, and program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911379730.6A CN111176725B (zh) | 2019-12-27 | 2019-12-27 | 数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176725A true CN111176725A (zh) | 2020-05-19 |
CN111176725B CN111176725B (zh) | 2022-05-06 |
Family
ID=70658118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911379730.6A Active CN111176725B (zh) | 2019-12-27 | 2019-12-27 | 数据处理方法、装置、设备和存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11314457B2 (zh) |
JP (1) | JP2022518636A (zh) |
CN (1) | CN111176725B (zh) |
SG (1) | SG11202011214XA (zh) |
WO (1) | WO2021128776A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021128776A1 (zh) * | 2019-12-27 | 2021-07-01 | 北京市商汤科技开发有限公司 | 数据处理方法、装置、设备、系统、存储介质和程序产品 |
WO2022061931A1 (zh) * | 2020-09-28 | 2022-03-31 | 华为技术有限公司 | 一种数据格式处理方法和装置 |
CN115794913A (zh) * | 2020-12-30 | 2023-03-14 | 华为技术有限公司 | 一种人工智能系统中数据处理方法及装置 |
WO2023093524A1 (en) * | 2021-11-24 | 2023-06-01 | International Business Machines Corporation | Reducing data format conversion of an accelerator |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11175957B1 (en) * | 2020-09-22 | 2021-11-16 | International Business Machines Corporation | Hardware accelerator for executing a computation task |
CN117693757A (zh) * | 2021-07-19 | 2024-03-12 | 华为技术有限公司 | 数据格式转换装置及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
CN106294234A (zh) * | 2016-08-01 | 2017-01-04 | 深圳云天励飞技术有限公司 | 一种数据传输方法及装置 |
CN109274697A (zh) * | 2018-11-22 | 2019-01-25 | 湖南有马信息技术有限公司 | 数据帧转义方法、数据帧解转义方法、系统及相关装置 |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN110309088A (zh) * | 2019-06-19 | 2019-10-08 | 北京百度网讯科技有限公司 | Zynq fpga芯片及其数据处理方法、存储介质 |
CN110457256A (zh) * | 2019-08-01 | 2019-11-15 | 大众问问(北京)信息科技有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
CN110515589A (zh) * | 2019-08-30 | 2019-11-29 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407245B2 (en) * | 2010-11-24 | 2013-03-26 | Microsoft Corporation | Efficient string pattern matching for large pattern sets |
CN103226532A (zh) * | 2013-03-28 | 2013-07-31 | 北京圆通慧达管理软件开发有限公司 | 数据处理系统和方法 |
US9952938B2 (en) * | 2013-10-28 | 2018-04-24 | Openet Telecom Ltd. | Method and system for eliminating backups in databases |
US10061581B2 (en) * | 2014-01-31 | 2018-08-28 | Qualcomm Incorporated | On-the-fly conversion during load/store operations in a vector processor |
CN105573922B (zh) * | 2014-11-07 | 2020-07-10 | 中兴通讯股份有限公司 | 一种实现数据格式转换的方法和装置 |
US10614354B2 (en) * | 2015-10-07 | 2020-04-07 | Altera Corporation | Method and apparatus for implementing layers on a convolutional neural network accelerator |
CN109032704B (zh) * | 2017-06-12 | 2022-08-09 | 深圳市中兴微电子技术有限公司 | 一种数据处理的方法和设备 |
US12105716B2 (en) * | 2017-06-23 | 2024-10-01 | Xilinx, Inc. | Parallel compute offload to database accelerator |
CN108363737B (zh) * | 2018-01-19 | 2022-04-12 | 深圳市宏电技术股份有限公司 | 一种数据格式转换方法、装置及设备 |
CN111176725B (zh) * | 2019-12-27 | 2022-05-06 | 北京市商汤科技开发有限公司 | 数据处理方法、装置、设备和存储介质 |
-
2019
- 2019-12-27 CN CN201911379730.6A patent/CN111176725B/zh active Active
-
2020
- 2020-06-24 SG SG11202011214XA patent/SG11202011214XA/en unknown
- 2020-06-24 WO PCT/CN2020/098173 patent/WO2021128776A1/zh active Application Filing
- 2020-06-24 JP JP2020564063A patent/JP2022518636A/ja active Pending
- 2020-11-13 US US17/097,971 patent/US11314457B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
CN106294234A (zh) * | 2016-08-01 | 2017-01-04 | 深圳云天励飞技术有限公司 | 一种数据传输方法及装置 |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN109274697A (zh) * | 2018-11-22 | 2019-01-25 | 湖南有马信息技术有限公司 | 数据帧转义方法、数据帧解转义方法、系统及相关装置 |
CN110309088A (zh) * | 2019-06-19 | 2019-10-08 | 北京百度网讯科技有限公司 | Zynq fpga芯片及其数据处理方法、存储介质 |
CN110457256A (zh) * | 2019-08-01 | 2019-11-15 | 大众问问(北京)信息科技有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
CN110515589A (zh) * | 2019-08-30 | 2019-11-29 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
Non-Patent Citations (1)
Title |
---|
刘科: "视频格式转换芯片中人机交互控制的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021128776A1 (zh) * | 2019-12-27 | 2021-07-01 | 北京市商汤科技开发有限公司 | 数据处理方法、装置、设备、系统、存储介质和程序产品 |
US11314457B2 (en) | 2019-12-27 | 2022-04-26 | Beijing Sensetime Technology Development Co., Ltd. | Data processing method for data format conversion, apparatus, device, and system, storage medium, and program product |
WO2022061931A1 (zh) * | 2020-09-28 | 2022-03-31 | 华为技术有限公司 | 一种数据格式处理方法和装置 |
CN116325703A (zh) * | 2020-09-28 | 2023-06-23 | 华为技术有限公司 | 一种数据格式处理方法和装置 |
CN115794913A (zh) * | 2020-12-30 | 2023-03-14 | 华为技术有限公司 | 一种人工智能系统中数据处理方法及装置 |
CN115794913B (zh) * | 2020-12-30 | 2024-03-15 | 华为技术有限公司 | 一种人工智能系统中数据处理方法及装置 |
EP4261705A4 (en) * | 2020-12-30 | 2024-07-03 | Huawei Tech Co Ltd | METHOD AND APPARATUS FOR PROCESSING DATA IN AN ARTIFICIAL INTELLIGENCE SYSTEM |
WO2023093524A1 (en) * | 2021-11-24 | 2023-06-01 | International Business Machines Corporation | Reducing data format conversion of an accelerator |
Also Published As
Publication number | Publication date |
---|---|
SG11202011214XA (en) | 2021-07-29 |
CN111176725B (zh) | 2022-05-06 |
US11314457B2 (en) | 2022-04-26 |
JP2022518636A (ja) | 2022-03-16 |
US20210200474A1 (en) | 2021-07-01 |
WO2021128776A1 (zh) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176725B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN108416327B (zh) | 一种目标检测方法、装置、计算机设备及可读存储介质 | |
US11269529B2 (en) | Neural network data processing apparatus, method and electronic device | |
CN111651384B (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
CN109564545B (zh) | 用于压缩地址的方法和设备 | |
CN109886399B (zh) | 一种张量处理装置及方法 | |
US11157452B2 (en) | In-band de-duplication | |
CN107728936B (zh) | 用于传输数据处理请求的方法和装置 | |
US11190620B2 (en) | Methods and electronic devices for data transmission and reception | |
US20100312924A1 (en) | Network processor, reception controller and data reception processing method performing direct memory access transfer | |
US11275683B2 (en) | Method, apparatus, device and computer-readable storage medium for storage management | |
US20180239605A1 (en) | Automatic hardware zlw insertion for ipu image streams | |
US20050243866A1 (en) | Packet transmission apparatus, packet transmission system and packet transmission method | |
US20240152458A1 (en) | Data caching method, system and device in ai cluster, and computer medium | |
CN115994040A (zh) | 计算系统以及进行数据广播和数据归约的方法及存储介质 | |
US20230066736A1 (en) | On-demand packetization for a chip-to-chip interface | |
EP3764238A1 (en) | Processing circuit, information processing apparatus, and information processing method | |
WO2021237513A1 (zh) | 数据压缩存储的系统、方法、处理器及计算机存储介质 | |
KR101706201B1 (ko) | 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법 | |
US11042497B2 (en) | Communication between field programmable gate arrays | |
CN107368643B (zh) | 基于rtl的模块划分方法、装置及终端设备 | |
US20230059970A1 (en) | Weight sparsity in data processing engines | |
CN114490465B (zh) | 用于直接存储器访问的数据传输方法和装置 | |
WO2021237518A1 (zh) | 数据存储的方法、装置、处理器及计算机存储介质 | |
JP2005141637A (ja) | メモリ管理装置 |
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 |