CN116069260B - 数据处理装置、方法、计算机设备以及存储介质 - Google Patents
数据处理装置、方法、计算机设备以及存储介质 Download PDFInfo
- Publication number
- CN116069260B CN116069260B CN202310190017.7A CN202310190017A CN116069260B CN 116069260 B CN116069260 B CN 116069260B CN 202310190017 A CN202310190017 A CN 202310190017A CN 116069260 B CN116069260 B CN 116069260B
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- transmission
- memory
- input data
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 67
- 238000003672 processing method Methods 0.000 title claims description 9
- 230000015654 memory Effects 0.000 claims abstract description 273
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000005540 biological transmission Effects 0.000 claims description 202
- 238000012546 transfer Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 12
- 238000013507 mapping Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据处理装置、方法、计算机设备以及存储介质,该装置包括:数据获取模块,用于获取输入数据;数据处理模块,用于将输入数据转换成目标存储器的数据格式,并将输入数据写入目标存储器,所述输入数据的数据格式与所述目标存储器的数据格式不同,目标存储器具有P个存储块,每个存储块包括X×Y个子存储块,其中,X为行数,Y为列数,子存储块包括Z个单元存储器,其中,位于同一列的子存储块中存储的数据的属性相同,位于同一行的子存储块中存储的数据的属性不同,P、X、Y、Z均为正整数。该装置能够在输入数据的数据格式与目标存储器的数据格式不同时,将输入数据转换为目标存储器的数据结构并将其写入该目标存储器。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据处理装置、方法、计算机设备以及存储介质。
背景技术
随着云计算技术、物联网等技术快速发展,数据信息呈现出了存储规模大、种类和来源多样化、存储管理复杂等显著特点。数据处理是指对数值的和非数值的数据进行分析和加工,以实现空间数据的有序化。在大数据时代的背景下,海量数据的处理成为了各行各业急需解决的问题,数据处理对于数据集成和数据管理等活动至关重要。
发明内容
本申请实施例提供了一种数据处理装置、方法、计算机设备以及存储介质。
第一方面,提供一种数据处理装置,包括:数据获取模块,用于获取输入数据,该输入数据来自源存储器;数据处理模块,用于将输入数据转换成目标存储器的数据格式,并将输入数据写入目标存储器,其中,输入数据的数据格式与目标存储器的数据格式不同,该目标存储器具有P个存储块,每个存储块包括X×Y个子存储块,其中,X为行数,Y为列数,子存储块包括Z个单元存储器,其中,位于同一列的子存储块中存储的数据的属性相同,位于同一行的子存储块中存储的数据的属性不同,P、X、Y、Z均为正整数。
基于本技术方案,在输入数据的数据格式与目标存储器的数据格式不同时,该数据处理装置能够将输入数据转换为目标存储器的数据格式,并将输入数据写入具有P个存储块,每个存储块包括X×Y个子存储块,并且同一列属性相同、同一行属性不同,每个子存储块包括Z个单元存储器的目标存储器中,实现了数据格式由输入数据结构到目标存储器结构的转换,从而能够将输入数据写入目标存储器。
结合第一方面,在第一方面可能的实现方式中,数据获取模块还用于获取与输入数据对应的标识信号,数据处理模块还用于:根据标识信号将输入数据写入目标存储器。
结合第一方面,在第一方面可能的实现方式中,输入数据包括M×N个子数据,其中,M为行数,N为列数,M、N均为正整数,位于同一列的子数据的属性相同,位于同一行的子数据的属性不同。
结合第一方面,在第一方面可能的实现方式中,标识信号包括行标识和目的地址标识,其中,输入数据每行对应一个行标识,目的地址标识包括行信息和偏移量,数据处理模块包括地址计算单元和控制单元,地址计算单元用于:根据行标识确定每个子数据待写入的存储块的位置;根据行信息确定每个子数据待写入的子存储块的位置;根据偏移量确定每个子数据待写入的单元存储器的位置;控制单元用于:将每个子数据写入对应位置的单元存储器。
结合第一方面,在第一方面可能的实现方式中,数据处理模块还包括数据转换单元,控制单元具体用于,确定所述偏移量小于或者等于Z-M;数据转换单元用于,分别提取所述输入数据中各列的子数据并组合以得到传输数据;控制单元具体还用于,将传输数据通过一次传输写入目标存储器。
结合第一方面,在第一方面可能的实现方式中,数据处理模块还包括数据转换单元,控制单元具体用于,确定偏移量大于Z-M;数据转换单元用于,分别提取所述输入数据中各列的子数据并组合以得到传输数据,再将传输数据拆分为第一传输数据和第二传输数据;控制单元具体还用于,将第一传输数据通过第一传输写入目标存储器,并将第二传输数据通过第二传输写入目标存储器。
结合第一方面,在第一方面可能的实现方式中,标识信号还包括掩码信息,掩码信息用于确定输入数据的有效性,数据处理模块还包括掩码处理单元,掩码处理单元用于,将传输数据的掩码信息进行拼接得到传输掩码,控制单元具体用于,根据传输掩码将传输数据通过一次传输写入目标存储器。
结合第一方面,在第一方面可能的实现方式中,标识信号还包括掩码信息,掩码信息用于确定输入数据的有效性,数据处理模块还包括掩码处理单元,掩码处理单元用于,将第一传输数据的掩码信息进行拼接得到第一传输掩码,并将第二传输数据的掩码信息进行拼接得到第二传输掩码,其中,控制单元具体用于,根据第一传输掩码将第一传输数据通过第一传输写入目标存储器,并根据第二传输掩码将第二传输数据通过第二传输写入目标存储器。
结合第一方面,在第一方面可能的实现方式中,所地址计算单元还用于:将行标识对P进行取余,以得到每个子数据待写入的存储块的位置。
结合第一方面,在第一方面可能的实现方式中,M、N、P、X、Y、Z均为2的正整数次幂。
第二方面,本申请还提供了一种计算机设备,计算机设备包括:上述第一方面或第一方面的任一可能的实现方式中的装置。
第三方面,本申请还提供了一种数据处理方法,该方法包括:获取输入数据,输入数据来自源存储器;将输入数据转换成目标存储器的数据格式,并将输入数据写入目标存储器,其中,输入数据的数据格式与目标存储器的数据格式不同,目标存储器具有P个存储块,每个存储块包括X×Y个子存储块,其中,X为行数,Y为列数,子存储块包括Z个单元存储器,其中,位于同一列的子存储块中存储的数据的属性相同,位于同一行的子存储块中存储的数据的属性不同,其中,P、X、Y、Z均为正整数。
在第三方面提供的方法中,在输入数据的数据格式与目标存储器的数据格式不同时,该数据处理方法能够将输入数据转换为目标存储器的数据格式,并将输入数据写入具有P个存储块,每个存储块包括X×Y个子存储块,并且同一列属性相同、同一行属性不同,每个子存储块包括Z个单元存储器的目标存储器中,实现了数据格式由输入数据结构到目标存储器结构的转换,从而能够将输入数据写入目标存储器。
结合第三方面,在第三方面可能的实现方式中,该方法还包括:获取与输入数据对应的标识信号,其中,将输入数据写入目标存储器,包括:根据标识信号将输入数据写入目标存储器。
结合第一方面,在第一方面可能的实现方式中,输入数据包括M×N个子数据,其中,M为行数,N为列数,M、N均为正整数,位于同一列的子数据的属性相同,位于同一行的子数据的属性不同。
结合第三方面,在第三方面可能的实现方式中,标识信号包括行标识和目的地址标识,其中,输入数据每行对应一个行标识,目的地址标识包括行信息和偏移量,根据标识信号将输入数据写入目标存储器,包括:根据行标识确定每个子数据待写入的存储块的位置;根据行信息确定每个子数据待写入的子存储块的位置;根据偏移量确定每个子数据待写入的单元存储器的位置;将每个子数据写入对应位置的单元存储器。
结合第三方面,在第三方面可能的实现方式中,将每个子数据写入对应位置的单元存储器,包括:确定偏移量小于或者等于Z-M;分别提取输入数据中各列的子数据并组合以得到传输数据;将传输数据通过一次传输写入目标存储器。
结合第三方面,在第三方面可能的实现方式中,将每个子数据写入对应位置的单元存储器,包括:确定所述偏移量大于Z-M;分别提取输入数据中各列的子数据并组合以得到传输数据,再将传输数据拆分为第一传输数据和第二传输数据;将第一传输数据通过第一传输写入所述目标存储器;将第二传输数据通过第二传输写入所述目标存储器。
结合第三方面,在第三方面可能的实现方式中,标识信号还包括掩码信息,掩码信息用于确定输入数据的有效性,将传输数据通过一次传输写入目标存储器,包括:将传输数据的掩码信息进行拼接得到传输掩码,根据传输掩码将传输数据通过一次传输写入目标存储器。
结合第三方面,在第三方面可能的实现方式中,将第一传输数据通过第一传输写入目标存储器,包括:将第一传输数据的掩码信息进行拼接得到第一传输掩码;根据第一传输掩码将第一传输数据通过第一传输写入目标存储器,将第二传输数据通过第二传输写入目标存储器,包括:将第二传输数据的掩码信息进行拼接得到第二传输掩码;根据第二传输掩码将第二传输数据通过第二传输写入目标存储器。
结合第三方面,在第三方面可能的实现方式中,根据行标识确定每个子数据待写入的存储块的位置,包括:将行标识对P进行取余,以得到每个子数据待写入的存储块的位置。
结合第三方面,在第三方面可能的实现方式中,M、N、P、X、Y、Z均为2的整数次幂。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如第三方面或第三方面任一可能的实施方式中的方法。
第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如第三方面或第三方面任一可能的实施方式中的方法。
第六方面,提供一种芯片,该芯片包括处理器,处理器与存储器耦合,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得所述芯片执行如第三方面或第三方面任一可能的实施方式中的方法。
附图说明
图1是本申请实施例提供的一种目标存储器的内部结构示意图。
图2是本申请实施例提供的一种存储块的内部结构示意图。
图3是本申请实施例提供的一种子存储块的内部结构示意图。
图4是本申请实施例提供的一种输入数据结构示意图。
图5是本申请实施例提供的一种数据转换装置的结构示意图。
图6是本申请实施例提供的一种计算存储块位置的硬件电路工作流程图。
图7是本申请实施例提供的一种计算子存储块位置的硬件电路工作流程图。
图8是本申请实施例提供的一种控制单元的硬件电路工作流程图。
图9是本申请实施例提供的一种掩码处理单元的硬件电路工作流程图。
图10是本申请实施例提供的另一种掩码处理单元的硬件电路工作流程图。
图11是本申请实施例提供的一种数据转换单元的硬件电路工作流程图。
图12是本申请实施例提供的另一种数据转换单元的硬件电路工作流程图。
图13是本申请实施例提供的一种数据处理装置的结构示意图。
图14是本申请实施例提供的一种数据处理架构图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所定义的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例描述的业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对个数的特别限定,不能构成对本申请实施例的任何限制。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
数据转换广泛应用在数据管理中,实现将数据从存储结构转变为另一种存储结构。例如,软件的全面升级带来数据库的升级,不同软件对应的数据库的构架与数据的存诸形式都是不相同的,需要经常对数据进行导入、导出和数据转换。再例如,由于数据量的不断增加,或者原来数据构架设计不合理,不能满足各方面的要求,导致数据库的更换,从而带来数据结构的更换以及数据本身的转换。
但是现有的存储器中,一些存储器有着特殊的存储结构,其内部存储的数据格式不同于输入数据的数据格式,从而对输入数据的写入造成阻碍。因此需要一种数据处理装置来对输入数据进行处理,将输入数据转换为符合内存结构的数据格式,并将其写入该目标存储器。
鉴于此,本申请提供了一种数据处理装置,图5是本申请实施例提供的一种数据转换装置的结构示意图,该装置包括数据获取模块510和数据处理模块520,其中数据获取模块510用于获取输入数据,该输入数据可以来自源存储器;数据处理模块520用于将输入数据转换成目标存储器的数据格式,并将输入数据写入目标存储器。其中,输入数据的数据格式与目标存储器的数据格式可以不同。该目标存储器可以具有P个存储块,每个存储块可以包括X×Y个子存储块,其中,X为行数,Y为列数,并且每个子存储块可以包括Z个单元存储器,其中,位于同一列的子存储块中存储的数据的属性可以相同,位于同一行的子存储块中存储的数据的属性可以不同,其中,上述P、X、Y、Z均为正整数。
基于本技术方案,该数据处理装置能够在输入数据的数据格式与目标存储器的数据格式不同时,将输入数据转换为目标存储器的数据格式,并将输入数据写入具有P个存储块,每个存储块包括X×Y个子存储块,并且同一列属性相同、同一行属性不同,每个子存储块包括Z个单元存储器的目标存储器中,实现了数据格式由输入数据结构到目标存储器结构的转换,从而能够将输入数据写入目标存储器。
可选的,该目标存储器可以位于图形处理器(graphics processing unit,GPU)内部。
在一些实施例中,输入数据可以包括M×N个子数据,其中,M为行数,N为列数,M、N均为正整数,位于同一列的子数据的属性相同,位于同一行的子数据的属性不同。可选的,源存储器是目标存储器之外的存储器。可选的,输入数据可以是GPU在运算中的中间结果,或者GPU在处理图形的顶点数据。
图1是本申请实施例提供的一种目标存储器的内部结构示意图,该目标存储器内部包含8个存储块,即US0,US1,US2,US3,US4,US5,US6,US7。每个存储块的内部结构相同。图2是本申请实施例提供的一种存储块的内部结构示意图,以存储块US0为例,其内部包括256×4个子存储块,256为行数(或者称深度,depth),4为列数,并且其中,各列子存储块所存储数据的属性不同,即R0、R1、R2、R3的属性各不相同。
图3是本申请实施例提供的一种子存储块的内部结构示意图,每个子存储块包括8个单元存储器,即D0、D1、D2、D3、D4、D5、D6、D7,并且该8个单元存储器所存储的数据的属性相同,例如R0内部的D0、D1、D2、D3、D4、D5、D6、D7均为R0属性。
在一些实施例中,每个单元存储器的容量为32比特(bit),则每个子存储块的容量为256 bit。
在一些实施例中,输入数据可以由主机(master)传入。可选的,master传入的数据,最大16个周期(cycle),也就是16次传输(transaction)。
图4是本申请实施例提供的一种输入数据结构示意图,该输入数据的数据结构包括4×4个子数据,即行(line)数、列数均为4,其中,每个line分别存储4种不同属性的数据,例如第一行的四个子数据V0R0、V0R1、V0R2、V0R3的属性各不相同;每列存储的数据属性相同,例如第四列的四个子数据V0R0、V1R0、V2R0、V3R0的属性相同,可以理解为V0R0、V1R0、V2R0、V3R0均为R0属性,V0R1、V1R1、V2R1、V3R1均为R1属性,依此类推。不同的line存储的是不同包(wrap)的数据,可以理解为,不同的wrap对应不同的对象,每一行的数据属于同一个对象,wrap是属于同一对象的属性为R0-R3的数据的集合。可选的,每个子数据的大小为32bit。
具体的,结合上述实施例的输入数据和目标存储器,该数据处理装置的数据获取模块510获取包括4行4列子数据的输入数据,其中,该输入数据位于同一列的数据属性相同;数据处理模块520将该输入数据写入目标存储器,该目标存储器具有US0至US7的8个存储块,每个存储块包括256×4个子存储块,位于同一列的子存储块中存储的数据属性相同,每个子存储块包括D0至D7共8个单元存储器。
在一些实施方式中,数据获取模块510还可以获取与所述输入数据对应的标识信号,数据处理模块520可以根据标识信号将输入数据写入目标存储器。可选的,标识信号可以包括行标识、目的地址标识、掩码信息中的一项或多项,其中,输入数据每行对应一个行标识。基于本技术方案,能够通过标识信号对输入数据的写入提供指引信息,能够便于数据处理模块将输入数据准确写入目标存储器。
在一些实施例中,标识信号可以包括行标识和目的地址标识,该数据处理模块520可以包括地址计算单元和控制单元,地址计算单元能够根据行标识确定每个子数据待写入的存储块的位置;进一步的,地址计算单元还可以用于根据行信息确定每个子数据待写入的子存储块的位置;进一步的,地址计算单元还可以根据偏移量确定每个子数据待写入的单元存储器的位置;进一步的,控制单元能够将每个所述子数据写入对应位置的单元存储器。
在一些实施例中,输入数据的每个子数据可以分别写入目标存储器的一个单元存储器,需要对每个子数据对应的单元存储块的地址进行计算。
在一些实施方式中,数据处理模块520可以包括地址计算单元,地址计算单元能够根据标识信号计算出每个子数据待写入的单元存储块的地址,具体的,可以通过以下计算方式计算:行标识对P进行取余,得到取余结果p,其中,,p为整数,则可以确定待写入存储块为目标存储器中的第p+1个存储块。通过对P取余,能够根据行标识确定目标存储块的位置,有利于输入数据的准确写入。
在一些实施例中,例如图2所示的目标存储器,P的值为8,则行标识对8进行取余。以下举例来说明取余结果与待写入存储块的映射关系:
当行标识=0,取余结果为0,输入数据中各子数据进行如下映射:
R0属性映射US0 R0;R1属性映射US0 R1;R2属性映射US0 R2;R3属性映射US0 R3;
当行标识=1,取余结果为1,输入数据中各子数据进行如下映射:
R0属性映射US1 R0;R1属性映射US1 R1;R2属性映射US1 R2;R3属性映射US1 R3;
当行标识=2,取余结果为2,输入数据中各子数据进行如下映射:
R0属性映射US2 R0;R1属性映射US2 R1;R2属性映射US2 R2;R3属性映射US2 R3;
当行标识=3,取余结果为3,输入数据中各子数据进行如下映射:
R0属性映射US3 R0;R1属性映射US3 R1;R2属性映射US3 R2;R3属性映射US3 R3;
当行标识=4,取余结果为4,输入数据中各子数据进行如下映射:
R0属性映射US4 R0;R1属性映射US4 R1;R2属性映射US4 R2;R3属性映射US4 R3;
当行标识=5,取余结果为5,输入数据中各子数据进行如下映射:
R0属性映射US5 R0;R1属性映射US5 R1;R2属性映射US5 R2;R3属性映射US5 R3;
当行标识=6,取余结果为6,输入数据中各子数据进行如下映射:
R0属性映射US6 R0;R1属性映射US6 R1;R2属性映射US6 R2;R3属性映射US6 R3;
当行标识=7,取余结果为7,输入数据中各子数据进行如下映射:
R0属性映射US7 R0;R1属性映射US7 R1;R2属性映射US7 R2;R3属性映射US7 R3;
当行标识=8,取余结果为0,输入数据中各子数据进行如下映射:
R0属性映射US0 R0;R1属性映射US0 R1;R2属性映射US0 R2;R3属性映射US0 R3;
当行标识=9,取余结果为1,输入数据中各子数据进行如下映射:
R0属性映射US1 R0;R1属性映射US1 R1;R2属性映射US1 R2;R3属性映射US1 R3;
当行标识=10,取余结果为2,输入数据中各子数据进行如下映射:
R0属性映射US2 R0;R1属性映射US2 R1;R2属性映射US2 R2;R3属性映射US2 R3;
当行标识=11,取余结果为3,输入数据中各子数据进行如下映射:
R0属性映射US3 R0;R1属性映射US3 R1;R2属性映射US3 R2;R3属性映射US3 R3;
当行标识=12,取余结果为4,输入数据中各子数据进行如下映射:
R0属性映射US4 R0;R1属性映射US4 R1;R2属性映射US4 R2;R3属性映射US4 R3;
当行标识=13,取余结果为5,输入数据中各子数据进行如下映射:
R0属性映射US5 R0;R1属性映射US5 R1;R2属性映射US5 R2;R3属性映射US5 R3;
当行标识=14,取余结果为6,输入数据中各子数据进行如下映射:
R0属性映射US6 R0;R1属性映射US6 R1;R2属性映射US6 R2;R3属性映射US6 R3;
当行标识=15,取余结果为7,输入数据中各子数据进行如下映射:
R0属性映射US7 R0;R1属性映射US7 R1;R2属性映射US7 R2;R3属性映射US7 R3;
当行标识为其他数值,映射关系依此类推。
地址计算单元能够根据标识信号中的行标识以及目的地址标识进行计算,从而确定出输入数据中每个子数据映射到目标存储器中的具体的位置,有利于输入数据各子数据的准确写入。
图6是本申请实施例提供的一种计算存储块位置的硬件电路工作流程图,当行标识对8进行取余后,将取余结果作为选择器的选择信号,将对应的输入数据、目的地址标识传递给对应的存储块接口。此外,输入数据中的各子数据可以写入与该子数据属性相同的单元存储器,例如,V0R0、V1R0、V2R0、V3R0均为R0属性,可以写入属性为R0的存储块;V0R1、V1R1、V2R1、V3R1均为R1属性,可以写入属性为R1的存储块,R2、R3属性的数据依此类推。可选的,属性相同的多个子数据可以写入同一个子存储块。
在一些实施方式中,标识信号中目的地址标识可以分为两个位域,即分为行信息与偏移量,行信息表示待写入的子存储块在存储块内部的行信息,偏移量表示待写入的单元存储器在子存储块内部的偏移量。
在一些实施方式中,地址计算单元可以根据行信息x和偏移量z确定输入数据中各子数据待写入的单元存储器,其中,,/>,x和z均为整数。具体的,位于同一列的多个子数据可以自第x行中对应属性的子存储块中的第z+1个单元存储器开始写入,依次写入第/>个单元存储器、第/>个单元存储器、……、第Z个单元存储器。在一些实施例中,若/>即/>,M为需要写入的位于同列的子数据的数量,z为偏移量,Z为一个子存储块中单元存储器的数量,/>为子存储块中可写入的单元存储块的数量,/>可以理解为,需要写入的位于同列的子数据的数量大于子存储块中可写入的单元存储块的数量),则在该情况下直至写完第x行中存储块的第Z个单元存储器,仍存在未被写入的子数据。可选的,可以将未被写入的子数据自第/>行中对应属性的子存储块的第1个单元存储器继续依次写入。
在一些实施例中,偏移量与输入数据中各子数据的映射关系如下:
偏移量=0,代表输入数据中各子数据进行如下映射:V0R0映射D0;V1R0映射D1;V2R0映射D2;V3R0映射D3;
偏移量=1,代表输入数据中各子数据进行如下映射:V0R0映射D1;V1R0映射D2;V2R0映射D3;V3R0映射D4;
偏移量=2,代表输入数据中各子数据进行如下映射:V0R0映射D2;V1R0映射D3;V2R0映射D4;V3R0映射D5;
偏移量=3,代表输入数据中各子数据进行如下映射:V0R0映射D3;V1R0映射D4;V2R0映射D5;V3R0映射D6;
偏移量=4,代表输入数据中各子数据进行如下映射:V0R0映射D4;V1R0映射D5;V2R0映射D6;V3R0映射D7;
偏移量=5,代表输入数据中各子数据进行如下映射:V0R0映射D5;V1R0映射D6;V2R0映射D7;V3R0映射D0(下一行);
偏移量=6,代表输入数据中各子数据进行如下映射:V0R0映射D6;V1R0映射D7;V2R0映射D0(下一行);V3R0映射D1(下一行);
偏移量=7,代表输入数据中各子数据进行如下映射:
V0R0映射D7;V1R0映射D0(下一行);V2R0映射D1(下一行);V3R0映射D2(下一行)。
在一些实施例中,行信息与输入数据中各子数据的映射关系如下:
以R0属性的子数据为例,例如,当行信息=10,偏移量=5;则写入的行地址为:
输入的子数据V0R0写入的行地址=10,即第10行子存储块R0中的D5位置;
输入的子数据V1R0写入的行地址=10,即第10行子存储块R0中的D6位置;
输入的子数据V2R0写入的行地址=10,即第10行子存储块R0中的D7位置;
输入的子数据V3R0写入的行地址=11,即第11行子存储块R0中的D0位置。
又例如,当行信息=12,偏移量=3;则写入的行地址为:
输入的子数据V0R0写入的行地址=12,即第12行子存储块R0中的D3位置;
输入的子数据V1R0写入的行地址12,即第12行子存储块R0中的D4位置;
输入的子数据V2R0写入的行地址=12,即第12行子存储块R0中的D5位置;
输入的子数据V3R0写入的行地址=12,即第12行子存储块R0中的D6位置。
又例如,当行信息=25,偏移量=7;则写入的行地址为:
输入的子数据V0R0写入的行地址=25,即第25行子存储块R0中的D7位置;
输入的子数V1R0写入的行地址=26,即第26行子存储块R0中的D0位置;
输入的子数据V2R0写入的行地址=26,即第26行子存储块R0中的D1位置;
输入的子数据V3R0写入的行地址=26,即第26行子存储块R0中的D2位置;
其他属性的子数据的映射关系依此类推。
图7是本申请实施例提供的一种计算子存储块位置的硬件电路工作流程图,以Z=8、M=4为例,首先通过比较器将偏移量与Z-M进行比较,Z-M为4,也就是将偏移量与4进行比较,当偏移量小于或者等于4时,则选择器选择行信息作为输出行地址;当偏移量大于4时,则选择器选择下一行作为行地址,其中,下一行为行信息加1。输出结果经过寄存器寄存后,将寄存结果赋值给行地址。
具体的,当输入数据中的子数据V1R2的行标识=12,目的地址标识中的行信息=10,偏移量=6时,地址计算单元先将12对8进行取余,得到4,则V1R2待写入的存储块地址为US4;将6与4进行比较,6大于4,同时行信息为10,则行地址为10,V1R2待写入的子存储块位于US4中的第10行R2属性的子存储块,具体写入的地址为:US4;第11行R2;D7位置。
在一些实施方式中,数据处理装置还可以包括控制单元,该控制单元可以根据地址计算单元所计算的地址将每个子数据写入对应位置的单元存储器。
在一些实施方式中,控制单元还可以对偏移量进行判断,通过将偏移量z与Z-M进行比较,从而判断是否需要对不同的地址进行写操作,即判断是否需要对位于不同行的子存储块进行写操作。
在一些实施方式中,该装置还包括数据转换单元,数据转换单元用于将输入数据中的子数据进行重排,以使输入数据的数据格式与目标存储器的数据格式相同。
当控制单元确定偏移量z小于或者等于Z-M时,即控制单元判断出偏移量z小于或者等于Z-M,则可以判断出不需要对不同的地址进行写操作,数据转换单元具体可以提取输入数据中各列的子数据并组合以得到传输数据,控制单元将传输数据通过一次传输写入目标存储器。具体的,该传输数据与目标存储器的数据格式相同。
例如,结合图1至图4的实施例所示的目标存储器和输入数据,Z值为8、M为4,则Z-M的值为4,当偏移量小于或者等于4时,输入数据的传输通一次传输完成。例如,当行信息=10,偏移量=4时,数据转换单元将输入数据中的子数据V0R0、V1R0、V2R0、V3R0组合为R0组,将V0R1、V1R1、V2R1、V3R1组合为R1组,V0R2、V1R2、V2R2、V3R2组合为R2组,V0R3、V1R3、V2R3、V3R3组合为R3组,4组共同构成了传输数据。控制单元将传输数据中的R0组自第10行中属性为R0的子存储块中的第5个存储单元开始写入,V0R0映射D4;V1R0映射D5;V2R0映射D6;V3R0映射D7;将传输数据中的R1组自第10行中属性为R1的子存储块中的第4个存储单元开始写入,V0R1映射D4;V1R1映射D5;V2R1映射D6;V3R1映射D7。R2组和R3组依此类推。
当控制单元确定偏移量z大于Z-M时,即控制单元判断出偏移量z大于Z-M,则可以判断出需要对不同的地址进行写操作,数据转换单元提取输入数据中各列的子数据并组合以得到传输数据之后,还需要将传输数据拆分为第一传输数据和第二传输数据;控制单元再将第一传输数据通过第一传输写入目标存储器,并将第二传输数据通过第二传输写入目标存储器。具体地,第一传输数据和第二传输数据可以写入不同的地址,即写入位于不同行的子存储块。
例如,结合图1至图4的实施例所示的目标存储器和输入数据,Z值为8、M为4,则Z-M的值为4,当偏移量大于4时,需要将输入数据拆分为2部分,通过两次传输来完成。例如,当行信息=10,偏移量=5时,数据转换单元首先将输入数据中的子数据V0R0、V1R0、V2R0、V3R0组合为R0组,将V0R1、V1R1、V2R1、V3R1组合为R1组,V0R2、V1R2、V2R2、V3R2组合为R2组,V0R3、V1R3、V2R3、V3R3组合为R3组,4组共同构成了传输数据。此外,数据转换单元还需要将传输数据拆分为第一传输数据和第二传输数据。具体地,数据转换单元将R0组拆分为R0’组和R0’’组,R0’组包括V0R0、V1R0、V2R0,R0’’组包括V3R0;将R1组拆分为R1’组和R1’’组,R1’组包括V0R1、V1R1、V2R1,R1’’组包括V3R1;将R2组拆分为R2’组和R2’’组,R2’组包括V0R2、V1R2、V2R2,R2’’组包括V3R2;将R3组拆分为R3’组和R3’’组,R3’组包括V0R3、V1R3、V2R3,R3’’组包括V3R3。R0’组、R1’组、R2’组、R3’组构成第一传输数据,R0’’组、R1’’组、R2’’组、R3’’组构成第二传输数据。
控制单元在第一传输中,将第一传输数据中的R0’组中的子数据自第10行中属性为R0的子存储块中的第6个存储单元开始写入,V0R0映射D5,V1R0映射D6,V2R0映射D7;将R1’组自第10行中属性为R1的子存储块中的第6个存储单元开始写入,V0R1映射D5,V1R1映射D6,V2R1映射D7;将R2’组自第10行中属性为R2的子存储块中的第6个存储单元开始写入,V0R2映射D5,V1R2映射D6;V2R2映射D7;将R3’组自第10行中属性为R3的子存储块中的第6个存储单元开始写入,V0R3映射D5,V1R3映射D6;V2R3映射D7。
控制单元在第二传输中,将第二传输数据中的R0’’组中的子数据自第11行中属性为R0的子存储块中的第1个存储单元开始写入,V3R0映射D3;将R1’’组自第11行中属性为R1的子存储块中的第1个存储单元开始写入,V3R1映射D5;将R2’’组自第11行中属性为R2的子存储块中的第1个存储单元开始写入,V3R2映射D5;将R3’’组自第11行中属性为R3的子存储块中的第1个存储单元开始写入,V3R3映射D5。
基于上述技术方案,控制单元能够对子存储块中的可写入空间进行判断,从而确定是否需要对不同的地址进行写入,并且在需要对不同的地址进行写入时,本方案将数据进行了拆分,并通过两次传输进行写入,能够避免因为子存储块存储空间不足而引起的数据写入失败。
图11是本申请实施例提供的一种数据转换单元的硬件电路工作流程图,子数据为输入数据中第0行属性为R0的V0R0,若偏移量=0,选择行0[31:0]作为选择器的输出,表示将子数据V0R0输出,并将行0[31:0]赋值给第一传输R0[31:0],表示将V0R0作为传输数据写入D0;若偏移量不为0,则选择32’d0作为输出,32’d0表示32bit的0,即表示输出为0,并赋值给传输数据R0[31:0]。
图12是本申请实施例提供的另一种数据转换单元的硬件电路工作流程图,图12是在图11的基础上,在左侧嵌套了一个判断器和选择器,来对偏移量是否为2进行判断,并由选择器做出选择,偏移量为其他值的硬件电路图依此类推。当偏移量=1时,图12中的数据转换单元的硬件电路选择行0作为选择器的输出,否则选取前级选择结果,当偏移量=0时,选择行1作为选择器的输出,否则选取前级选择结果赋值给传输数据R0[31:0]。
参见图8所示的本申请实施例提供的一种控制单元的硬件电路工作流程图,当偏移量大于4时,需要通过两次传输将数据传输至目标存储器,通过传输次数计数器进行计数,并且传输次数取值为0和1。当传输次数=0时,输出第一传输信号,该第一传输信号包括第一传输数据以及第一传输数据的对应的行地址;当传输次数取值为1时,输出第二传输信号,该第二传输信号包括第二传输数据以及第二传输数据的对应的下一行的行地址。
在一些情况下,期望仅将数据的一部分写入到目标存储器,掩码可以用于在写入操作期间对数据进行掩码,用于使能或者阻止一些数据到达单元存储器。
在一些实施例中,标识信息可以包括输入数据对应的掩码信息,数据处理装置还可以包括掩码处理单元,该掩码处理单元用于对掩码信息进行处理,即将属于同一次传输的掩码信息进行拼接,并与本次传输的数据匹配输出。
在一些实施例中,可以用掩码信息来确定输入数据的有效性。在一些实施例中,掩码信息用于识别本次传输中一行中对应32bit有效,每bit掩码使能32bit。
当偏移量z小于或者等于Z-M时,掩码处理单元能够将输入数据的掩码信息进行拼接得到传输掩码,并将该传输掩码发送至控制单元,控制单元将该传输掩码与输入数据一并传输;当偏移量大于Z-M时,掩码处理单元将第一传输数据的掩码信息进行拼接得到第一传输掩码,将第二传输数据的掩码信息进行拼接得到第二传输掩码,并将第一传输掩码和第二传输掩码发送至控制单元。控制单元将第一传输掩码与第一传输数据一并传输,并将第二传输掩码与第二传输数据一并传输,并根据第一传输掩码将第一传输数据通过第一传输写入目标存储器,根据第二传输掩码将第二传输数据通过第二传输写入目标存储器。
基于上述技术方案,掩码处理单元能够将属于同一次传输的掩码信息进行拼接,从而有利于控制单元在写入时对传输的数据的有效性进行判断,有利于将输入数据准确写入目标存储器。
在一些实施例中,上述控制单元中的第一传输信号还可以包括第一传输掩码,第二传输信号还可以包括第二传输掩码。
第一传输掩码的生成可以参见图9所示的本申请实施例提供的一种掩码处理单元的硬件电路工作流程图,首先将偏移量与0进行比较,当偏移量=0时,选择掩码[0],否则选取前级选择结果;当偏移量小于或者等于4时,将前级选择结果作为输出,否则选取0作为输出第一传输掩码。
例如,当偏移量=0时,首先经过左侧的判断器判断为“是”,并经过左侧的选择器输出掩码[0];再经过右侧的判断器判断为“是”,并将左侧选择器的输出,即掩码[0],作为右侧选择器的输出,最后经过寄存器寄存后将掩码[0]作为第一传输掩码。
当偏移量=1时,首先经过左侧的判断器判断为“否”,并经过左侧的选择器输出前级选择结果;再经过右侧的判断器判断为“是”,并将左侧选择器的输出,即前级选择结果,作为右侧选择器的输出,最后经过寄存器寄存后将前级选择结果作为第一传输掩码。
当偏移量=5时,首先经过左侧的判断器判断为“否”,并经过左侧的选择器输出前级选择结果;再经过右侧的判断器判断为“否”,并将0作为右侧选择器的输出,最后经过寄存器后将0作为第一传输掩码。
第二传输掩码的生成可以参见图10所示的本申请实施例提供的另一种掩码处理单元的硬件电路工作流程图,首先将偏移量与5进行比较,当偏移量=5,则选择掩码[0],否则选取前级选择结果;当偏移量小于或者等于4时,将前级选择结果作为输出,否则选取0作为输出第二传输掩码。
例如,当偏移量=5时,首先经过左侧的判断器判断为“是”,并经过左侧的选择器输出掩码[0];再经过右侧的判断器判断为“否”,并将0作为右侧选择器的输出,最后经过寄存器寄存后将0作为第二传输掩码。
当偏移量=2时,首先经过左侧的判断器判断为“否”,并经过左侧的选择器输出前级选择结果;再经过右侧的判断器判断为“是”,并将前级选择结果作为右侧选择器的输出,最后经过寄存器寄存后将前级选择结果作为第二传输掩码。
当偏移量=6时,首先经过左侧的判断器判断为“否”,并经过左侧的选择器输出前级选择结果;再经过右侧的判断器判断为“否”,并将0作为右侧选择器的输出,最后经过寄存器寄存后将0作为第二传输掩码。
在一些实施例中,数据处理装置前还可以连接有标识信号存储器和输入数据存储器。可选的,标识信号与输入数据可以分开存储。
在一些实施例中,上述标识信号存储器和输入数据存储器可以位于数据处理装置中的数据获取模块510。参见图13中本申请实施例提供的一种数据处理装置的结构示意图,标识信号存储器和输入数据存储器是针对目标存储器的结构而设计的,其中标识信号存储器可以用来存储标识信号,即相应的目的地址标识,行标识,以及掩码信息;输入数据存储器可以用来对输入数据进行缓存。
图14是本申请实施例提供的一种数据处理架构图,其中,数据获取模块510中的标识信号存储器用于获取输入数据并将其进行缓存,之后将该输入数据发送至数据处理模块520中的数据转换单元。
可选的,各单元、模块间采用握手的方式,保证数据可以写入目标存储器内部对应的存储空间。当后级的控制单元、地址计算单元、掩码处理单元、数据转换单元空闲时,控制单元控制各单元从两个存储器中读取数据进行处理,并将处理完后的数据写到目标存储器内部对应的存储空间,即将输入数据中的各子数据写入目标存储器内部的单元存储器。
上文详细地描述了本申请实施例的装置实施例,下面描述本申请实施例的方法实施例,方法实施例与装置实施例相互对应,因此方法实施例中未详细描述的部分可参见前面装置实施例。
本申请实施例还提供了一种数据处理方法,该方法包括以下步骤:
获取输入数据,该输入数据来自源存储器;
将该输入数据转换成目标存储器的数据格式,并将输入数据写入目标存储器,其中,输入数据的数据格式与目标存储器的数据格式不同,该目标存储器具有P个存储块,每个存储块包括X×Y个子存储块,并且其中,X为行数,Y为列数,位于同一列的子存储块中存储的数据的属性相同,位于同一行的子存储块中存储的数据的属性不同,其中,子存储块包括Z个单元存储器,上述P、X、Y、Z均为正整数。
基于上述技术方案,在输入数据的数据格式与目标存储器的数据格式不同时,该数据处理方法能够将输入数据转换为目标存储器的数据格式,并将输入数据写入具有P个存储块,每个存储块包括X×Y个子存储块,并且同一列属性相同、同一行属性不同,每个子存储块包括Z个单元存储器的目标存储器中,实现了数据格式由输入数据结构到目标存储器结构的转换,从而能够将输入数据写入目标存储器。
在一些实施例中,输入数据包括M×N个子数据,其中,M为行数,N为列数,M、N均为正整数,位于同一列的子数据的属性相同,位于同一行的子数据的属性不同。
在一些实施例中,上述方法还包括获取与输入数据对应的标识信号,并且根据标识信号将输入数据写入目标存储器。可选的,标识信号可以包括行标识和目的地址标识,其中,输入数据每行对应一个行标识。进一步的,目的地址标识可以包括行信息和偏移量。
在一些实施例中,将该输入数据写入目标存储器包括以下步骤:根据行标识确定每个子数据待写入的存储块的位置;根据行信息确定每个子数据待写入的子存储块的位置;根据偏移量确定每个子数据待写入的单元存储器的位置;将每个子数据写入对应位置的单元存储器。在一些实施例中,还可以将行标识对P进行取余以得到每个子数据待写入的存储块的位置。
在一些实施例中,将每个子数据写入对应位置的单元存储器,具体包括:确定偏移量小于或者等于Z-M;分别提取输入数据中各列的子数据并组合以得到传输数据;将传输数据通过一次传输写入目标存储器。
在另一些实施例中,将每个子数据写入对应位置的单元存储器,具体包括以下步骤:确定所述偏移量大于Z-M;分别提取输入数据中各列的子数据并组合以得到传输数据,再将传输数据拆分为第一传输数据和第二传输数据;将第一传输数据通过第一传输写入所述目标存储器;将第二传输数据通过第二传输写入所述目标存储器。
在一些实施例中,标识信号还可以包括掩码信息,掩码信息能够用于确定输入数据的有效性。上述方法中的将传输数据通过一次传输写入目标存储器,包括以下步骤:将传输数据的掩码信息进行拼接得到传输掩码;根据传输掩码将将传输数据通过一次传输写入目标存储器。
在一些实施例中,上述方法中的将第一传输数据通过第一传输写入目标存储器,具体包括:将第一传输数据的掩码信息进行拼接得到第一传输掩码,根据第一传输掩码将第一传输数据通过第一传输写入目标存储器。上述方法中的将第二传输数据通过第二传输写入目标存储器,具体包括:将第二传输数据的掩码信息进行拼接得到第二传输掩码;根据第二传输掩码将第二传输数据通过第二传输写入目标存储器。
本申请实施例还提供了一种计算机设备,其特征在于,所述计算机设备包括上述任一实施例所述的装置。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例中的方法。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例中的方法。
本申请还提供了一种芯片,该芯片包括处理器,处理器与存储器耦合,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得所述芯片执行如上述任一实施例中的方法。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读内存(Read-Only Memory , ROM)、随机存储内存(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本申请的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。虽然已经参考优选实施例对本申请进行了描述,但在不脱离本申请的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种数据处理装置,其特征在于,所述装置包括:
数据获取模块,用于获取输入数据,所述输入数据来自源存储器;
数据处理模块,用于将所述输入数据转换成目标存储器的数据格式,并将所述输入数据写入所述目标存储器,所述目标存储器是所述数据处理装置内部的寄存器组;
其中,所述输入数据的数据格式与所述目标存储器存储的数据格式不同,所述目标存储器具有P个存储块,每个所述存储块包括X×Y个子存储块,其中,X为行数,Y为列数,所述子存储块包括Z个单元存储器,其中,位于同一列的所述子存储块中存储的数据的属性相同,位于同一行的所述子存储块中存储的数据的属性不同,P、X、Y、Z均为正整数;
其中,所述输入数据为表征通过图形处理器GPU处理的图像数据,所述装置为配置在GPU中的硬件电路或器件,
所述数据获取模块还用于,获取与所述输入数据对应的标识信号,其中,所述标识信号包括偏移量,所述偏移量用于确定所述输入数据写入所述目标存储器的次数;
所述数据处理模块还用于,根据所述标识信号将所述输入数据写入所述目标存储器,其中,所述标识信号用于指示所述输入数据写入所述目标存储器中的位置;
所述标识信号包括行标识和目的地址标识,其中,所述输入数据包括M×N个子数据,其中,M为行数,N为列数,M、N均为正整数,位于同一列的所述子数据的属性相同,位于同一行的所述子数据的属性不同,所述输入数据每行对应一个所述行标识,所述目的地址标识包括行信息和所述偏移量,
所述数据处理模块包括选择器,所述选择器用于:
根据所述行标识确定每个子数据待写入的存储块的位置;
根据所述行信息确定每个子数据待写入的子存储块的位置;
根据所述偏移量确定每个子数据待写入的单元存储器的位置;
将每个子数据写入对应位置的单元存储器。
2.根据权利要求1所述的装置,其特征在于,所述选择器用于:
在所述偏移量小于或者等于Z-M的情况下,分别提取所述输入数据中各列的子数据并组合以得到传输数据;
将所述传输数据通过一次传输写入所述目标存储器。
3.根据权利要求1所述的装置,其特征在于,所述选择器用于:
在所述偏移量大于Z-M的情况下,分别提取所述输入数据中各列的子数据并组合以得到传输数据,再将所述传输数据拆分为第一传输数据和第二传输数据;
将所述第一传输数据通过第一传输写入所述目标存储器,并将所述第二传输数据通过第二传输写入所述目标存储器。
4.根据权利要求2所述的装置,其特征在于,所述标识信号还包括掩码信息,所述掩码信息用于确定所述输入数据的有效性,所述选择器还用于:
将所述传输数据的掩码信息进行拼接得到传输掩码;
根据所述传输掩码将所述传输数据通过所述一次传输写入所述目标存储器。
5.根据权利要求3所述的装置,其特征在于,所述标识信号还包括掩码信息,所述掩码信息用于确定所述输入数据的有效性,所述选择器还用于:
将所述第一传输数据的掩码信息进行拼接得到第一传输掩码,并将所述第二传输数据的掩码信息进行拼接得到第二传输掩码;
根据所述第一传输掩码将所述第一传输数据通过所述第一传输写入所述目标存储器,并根据所述第二传输掩码将所述第二传输数据通过所述第二传输写入所述目标存储器。
6.根据权利要求1所述的装置,其特征在于,所选择器还用于:
将所述行标识对P进行取余,以得到每个子数据待写入的存储块的位置。
7.一种计算机设备,其特征在于,所述计算机设备包括:如权利要求1至6中任一项所述的装置。
8.一种数据处理方法,其特征在于,所述方法应用于数据处理装置,所述方法包括:
获取输入数据,所述输入数据来自源存储器;
将所述输入数据转换成目标存储器的数据格式,并将所述输入数据写入所述目标存储器,所述目标存储器是所述数据处理装置内部的寄存器组;
其中,所述输入数据的数据格式与所述目标存储器的数据格式不同,所述目标存储器具有P个存储块,每个所述存储块包括X×Y个子存储块,其中,X为行数,Y为列数,所述子存储块包括Z个单元存储器,其中,位于同一列的所述子存储块中存储的数据的属性相同,位于同一行的所述子存储块中存储的数据的属性不同,
其中,P、X、Y、Z均为正整数,
其中,所述输入数据为表征通过图形处理器GPU处理的图像数据,所述方法通过GPU硬件电路实现;
所述方法还包括:获取与所述输入数据对应的标识信号,其中,所述标识信号包括偏移量,所述偏移量用于确定所述输入数据写入所述目标存储器的次数;
所述将所述输入数据写入所述目标存储器,包括:根据所述标识信号将所述输入数据写入所述目标存储器,其中,所述标识信号用于指示所述输入数据写入所述目标存储器中的位置;
所述标识信号包括行标识和目的地址标识,其中,所述输入数据包括M×N个子数据,其中,M为行数,N为列数,M、N均为正整数,位于同一列的所述子数据的属性相同,位于同一行的所述子数据的属性不同,所述输入数据每行对应一个所述行标识,所述目的地址标识包括行信息和所述偏移量,所述根据所述标识信号将所述输入数据写入所述目标存储器,包括:
根据所述行标识确定每个子数据待写入的存储块的位置;
根据所述行信息确定每个子数据待写入的子存储块的位置;
根据所述偏移量确定每个子数据待写入的单元存储器的位置;
将每个子数据写入对应位置的单元存储器。
9.根据权利要求8所述的方法,其特征在于,所述将每个子数据写入对应位置的单元存储器,包括:
在所述偏移量小于或者等于Z-M的情况下,分别提取所述输入数据中各列的子数据并组合以得到传输数据;
将所述传输数据通过一次传输写入所述目标存储器。
10.根据权利要求8所述的方法,其特征在于,所述将每个子数据写入对应位置的单元存储器,包括:
在所述偏移量大于Z-M的情况下,分别提取所述输入数据中各列的子数据并组合以得到传输数据,再将所述传输数据拆分为第一传输数据和第二传输数据;
将所述第一传输数据通过第一传输写入所述目标存储器;
将所述第二传输数据通过第二传输写入所述目标存储器。
11.根据权利要求9所述的方法,其特征在于,所述标识信号还包括掩码信息,所述掩码信息用于确定所述输入数据的有效性,
所述将所述传输数据通过一次传输写入所述目标存储器,包括:
将所述传输数据的掩码信息进行拼接得到传输掩码,
根据所述传输掩码将所述传输数据通过一次传输写入所述目标存储器。
12.根据权利要求10所述的方法,其特征在于,所述标识信号还包括掩码信息,所述掩码信息用于确定所述输入数据的有效性,
所述将所述第一传输数据通过第一传输写入所述目标存储器,包括:
将所述第一传输数据的掩码信息进行拼接得到第一传输掩码;
根据所述第一传输掩码将所述第一传输数据通过所述第一传输写入所述目标存储器,
所述将所述第二传输数据通过第二传输写入所述目标存储器,包括:
将所述第二传输数据的掩码信息进行拼接得到第二传输掩码;
根据所述第二传输掩码将所述第二传输数据通过所述第二传输写入所述目标存储器。
13.根据权利要求8所述的方法,其特征在于,所述根据所述行标识确定每个子数据待写入的存储块的位置,包括:
将所述行标识对P进行取余,以得到每个子数据待写入的存储块的位置。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8至13中任一项所述的方法。
15.一种芯片,其特征在于,所述芯片包括处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述芯片执行如权利要求8至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310190017.7A CN116069260B (zh) | 2023-02-23 | 2023-02-23 | 数据处理装置、方法、计算机设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310190017.7A CN116069260B (zh) | 2023-02-23 | 2023-02-23 | 数据处理装置、方法、计算机设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116069260A CN116069260A (zh) | 2023-05-05 |
CN116069260B true CN116069260B (zh) | 2024-03-22 |
Family
ID=86182016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310190017.7A Active CN116069260B (zh) | 2023-02-23 | 2023-02-23 | 数据处理装置、方法、计算机设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069260B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574159A (zh) * | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 数据存储、查询方法和装置 |
CN109542898A (zh) * | 2018-10-30 | 2019-03-29 | 天津字节跳动科技有限公司 | 资料库表格的数据存储方法、装置、电子设备及存储介质 |
CN110442308A (zh) * | 2019-07-05 | 2019-11-12 | 厦门四信物联网科技有限公司 | 一种数据块存储方法、装置、设备及存储介质 |
CN110874358A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 多属性列的存储、检索方法和装置以及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328172B (zh) * | 2020-10-27 | 2022-04-19 | 北京百度网讯科技有限公司 | 数据存储方法、装置及数据读取方法、装置 |
-
2023
- 2023-02-23 CN CN202310190017.7A patent/CN116069260B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574159A (zh) * | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 数据存储、查询方法和装置 |
CN110874358A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 多属性列的存储、检索方法和装置以及电子设备 |
CN109542898A (zh) * | 2018-10-30 | 2019-03-29 | 天津字节跳动科技有限公司 | 资料库表格的数据存储方法、装置、电子设备及存储介质 |
CN110442308A (zh) * | 2019-07-05 | 2019-11-12 | 厦门四信物联网科技有限公司 | 一种数据块存储方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
李白与酒.InnoDB逻辑存储结构.https://www.cnblogs.com/agilestyle/p/11428574.html.2019,1-3. * |
死磕的斯坦张.关系型数据库.https://blog.csdn.net/david2000999/article/details/120684267.2021,1-2. * |
Also Published As
Publication number | Publication date |
---|---|
CN116069260A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6916751B2 (ja) | ハイブリッドメモリーモジュール及びその動作方法 | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
US8548962B2 (en) | Data compression and decompression using relative and absolute delta values | |
CN103914404B (zh) | 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法 | |
CN112328172A (zh) | 数据存储方法、装置及数据读取方法、装置 | |
CN114035849A (zh) | 用于执行原子操作的系统、原子操作方法及装置 | |
CN115562587A (zh) | 应用于存储介质的数据存储方法、装置、设备及存储介质 | |
CN108139972B (zh) | 用于管理硬件辅助数据压缩中的存储器碎片的方法和设备 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN116069260B (zh) | 数据处理装置、方法、计算机设备以及存储介质 | |
US6820186B2 (en) | System and method for building packets | |
US20050105556A1 (en) | Packet processor and buffer memory controller for extracting and aligning packet header fields to improve efficiency of packet header processing of main processor and method and medium therefor | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 | |
EP3779706B1 (en) | Method, apparatus, device and computer-readable storage medium for storage management | |
CN112783971B (zh) | 交易记录方法、交易查询方法、电子设备及存储介质 | |
CN114610231A (zh) | 大位宽数据总线分段存储的控制方法、系统、设备及介质 | |
CN110825658B (zh) | 闪存控制器及方法 | |
US20020147830A1 (en) | Method and structure for indication of last data buffer of a frame packet in a network processor | |
US20080147888A1 (en) | Address handling | |
US11513852B2 (en) | Data transferring apparatus and method for transferring data with overlap | |
CN113627937A (zh) | 一种区块存储方法、装置、设备和存储介质 | |
WO2017024873A1 (zh) | 一种存储单元和处理系统 | |
CN111813722B (zh) | 基于共享内存的数据读写方法,系统及可读存储介质 | |
CN113297211B (zh) | 一种大数据高并发下人群画像存储及定向系统及方法 | |
US20210224188A1 (en) | Communication gateway for communicating data frames for a motor vehicle |
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 |