CN115951842A - 基于单路输入的数据处理装置、方法和计算机设备 - Google Patents
基于单路输入的数据处理装置、方法和计算机设备 Download PDFInfo
- Publication number
- CN115951842A CN115951842A CN202310194041.8A CN202310194041A CN115951842A CN 115951842 A CN115951842 A CN 115951842A CN 202310194041 A CN202310194041 A CN 202310194041A CN 115951842 A CN115951842 A CN 115951842A
- Authority
- CN
- China
- Prior art keywords
- data
- row
- storage module
- storage
- column
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例提供一种基于单路输入的数据处理装置、方法和计算机设备,该基于单路输入的数据处理装置包括:第一控制部件用于获取输入数据,输入数据包括至少一个U行V列的第一数据,同一行的第一数据的属性不相同;第一控制部件还用于将至少一个U行V列的第一数据重排为I行J列的第二数据,同一行的第二数据的属性相同;第一存储部件的同一行用于存储属性相同的数据;第一控制部件用于将第A行的第二数据写入第一存储部件的同一行;U、V、I、J均为正整数,第A行为I行中的任一行。这样,通过提前将同一行属性不相同的数据重排为同一行属性相同的数据,再将同一行属性相同的数据写入第一存储部件,提高了系统的处理效率。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种基于单路输入的数据处理装置、一种基于单路输入的数据处理的方法、一种计算机设备、一种计算机可读存储介质和一种芯片。
背景技术
随着数据处理技术的不断发展,数据处理技术的应用场景越来越多。例如,云游戏、图像处理等应用场景。特定的应用场景往往需要对应的特定数据结构。但输入和存储的数据不一定符合该特定数据结构,因此,需要在读取所存储的数据时进行数据结构的转换,以满足该特定数据结构的要求。但是,读取数据时数据结构的转换过程会引起较大的时延,都将影响系统效率。
发明内容
本申请实施例提供了一种基于单路输入的数据处理装置、方法、计算机设备、芯片和存储介质,能够提高系统处理的效率。
第一方面,提供了一种基于单路输入的数据处理装置,该基于单路输入的数据处理装置包括第一控制部件和第一存储部件:第一控制部件用于获取输入数据,输入数据包括至少一个U行V列的第一数据,其中,同一行的第一数据的属性不相同;第一控制部件还用于将至少一个U行V列的第一数据重排为I行J列的第二数据,其中,同一行的第二数据的属性相同;第一存储部件的同一行用于存储属性相同的数据;第一控制部件还用于将第A行的第二数据写入第一存储部件的同一行;其中,U、V、I、J均为正整数,第A行为I行中的任一行。
在本申请实施例中,相较于将同一行属性不相同的U行V列的第一数据在写入第一存储部件时再选取属性相同的数据存入第一存储部件的相应位置,将同一行属性不同的U行V列的第一数据重排后的数据直接写入第一存储部件,能够提高系统的处理效率。
在一些可能的实施方式中,基于单路输入的数据处理装置还包括第二控制部件:第二控制部件用于读取第A行的第二数据;第二控制部件还用于将第A行的第二数据写入第二存储部件的同一行。
在该实施例中,相较于边读边写的数据处理模式,第二控制部件可以从第一存储部件中一次性读取多个属性相同的数据,加快了读取属相相同的数据的效率。并且,还在出现写入故障时,相较于边读边写的处理模式,能够减小反压产生的次数或者延缓反压产生的时间。
在一些可能的实施方式中,第一存储部件包括第一存储模块和第二存储模块;若第一存储模块处于空闲状态,则第一控制部件还用于将第A行的第二数据写入第一存储模块的同一行;或者,若第二存储模块处于空闲状态,则第一控制部件还用于将第A行的第二数据写入第二存储模块的同一行。
在该实施例中,通过在第一存储部件中设置多个存储模块,不仅可以存储更多的数据,还可以在发生写入故障时,增加第一存储部件存储数据的时间,从而进一步延缓反压产生的时间。以及,在第二控制部件从第一存储模块中读取数据时,第一控制部件可以向空闲的第二存储模块写入数据,以实现并行地读写操作,从而进一步提高系统处理的效率。
在一些可能的实施方式中,基于单路输入的数据处理装置还包括标识部件:标识部件用于存储I行J列的第二数据的位置信息,位置信息用于指示I行J列的第二数据存储在第一存储模块中或者第二存储模块中;第二控制部件还用于读取位置信息,并根据位置信息读取第A行的第二数据。
在该实施例中,第二控制部件根据位置信息读取第A行的第二数据,使得每次读写的数据均来自同一存储模块,从而第二控制部件读写的数据具有关联性,有利于数据的处理。
在一些可能的实施方式中,若位置信息指示第一存储模块,则第二控制部件还用于从第一存储模块中读取第A行的第二数据;或者,若位置信息指示第二存储模块,则第二控制部件还用于从第二存储模块中读取第A行的第二数据。
在该实施例中,第二控制部件根据位置信息准确地从多个存储模块中确定待读取的存储模块,从而能够精准地获取此次待读取的数据。并且,在第二控制部件读取I行J列的第二数据出现故障时,第二控制部件可以根据位置信息使得故障发生前读取的第二数据和故障消除后读取的第二数据均来自同一存储模块,使得第二控制部件读写的数据具有关联性。
在一些可能的实施方式中,第二控制部件还用于向第一控制部件发送第一完成信号和位置信息;第一控制部件还用于根据第一完成信号和位置信息确定第一存储模块是否处于空闲状态或者第二存储模块是否处于空闲状态。
在该实施例中,通过第二控制部向第一控制部件发送第一完成信号和位置信息,便于第一控制部件确定第二控制部件、第一存储部件和第二存储部件的状态,以便第一控制部件及时地处理下一次的数据,进一步提高了系统处理的效率。
在一些可能的实施方式中,在第一周期内,第一控制部件还用于将I行J列的第二数据中的B个数据写入第一存储部件;在第二周期内,第二控制部件还用于读取第A行的第二数据;其中,第一周期和第二周期的时长相等,J>B,B>1,且B为正整数。
在该实施例中,第二控制部件的读取速度大于第一控制部件的写入速度。这样,在出现写入故障时,不仅可以进一步降低反压产生的概率,还可以进一步延缓反压产生的时间。
在一些可能的实施方式中,第一存储部件包括相邻排列的r1个存储块,r1个存储块中的每个存储块用于存储M行N列的数据;其中,M、N和r1均为正整数,M=I,N=J/r1。这样,便于第一控制部件将I行J列的第二数据写入第一存储部件。
在一些可能的实施方式中,在第一周期内,第一控制部件还用于将B个数据中属性相同的数据写入一个存储块的同一行;在第二周期内,第二控制部件还用于从r1个存储块的同一行中读取第A行的第二数据。
在该实施例中,便于第一控制部件将B个数据写入多个结构类似的存储块中的任意一个或多个,增加了数据写入的灵活性。
在一些可能的实施方式中,第二存储部件包括第三存储模块和第四存储模块,在第三周期内,第二控制部件还用于将第A行的第二数据写入第三存储模块的同一行;在第四周期内,第二控制部件还用于将第C行的第二数据写入第四存储模块的同一行,其中,第四周期与第三周期的时长相等,第C行为I行中的任一行。
在该实施例中,第二控制部件可以将不同属性的数据分别存储在不同的存储模块中,便于数据的处理。
在一些可能的实施方式中,输入数据还包括第一掩码,第一掩码用于标识U行V列的第一数据的有效性。
在该实施例中,由于输入数据包括标识U行V列的第一数据的有效性的掩码,便于第一控制部件根据第一数据的有效性做出相应的处理,增加了数据处理的灵活性。
在一些可能的实施方式中,基于单路输入的数据处理装置还包括标识部件,标识部件用于存储第一掩码;第一控制部件还用于在接收到第二完成信号后将第一掩码写入标识部件。
在该实施例中,第一控制部件在确定数据处理的相应阶段后,才将第一掩码写入标识部件,可以使得第一控制部件在相应的时间段内处理的任务较少,提高了第一控制部件将第一掩码写入标识部件的效率。
在一些可能的实施方式中,标识部件还用于存储第二掩码,第二掩码用于标识I行J列的第二数据的有效性;第二控制部件还用于将第二掩码写入第二存储部件,以便第二存储部件根据第二掩码确定I行J列的第二数据的有效性。
在该实施例中,由于第二控制部件将第二掩码写入第二存储部件,从而在后续处理过程中,若其他部件从第二存储部件中读取数据,也可以获取该数据的有效性,提高了系统的便捷性。
在一些可能的实施方式中,第一控制部件还用于向第二控制部件发送第三完成信号;第二控制部件还用于在接收到第三完成信号后读取第A行的第二数据。
在该实施例中,通过在第一控制部件与第二控制部件之间传递第三完成信号,便于第一控制部件和第二控制部件确定彼此的状态,使得第二控制部件能够有序地读取第二数据。
第二方面,提供了一种基于单路输入的数据处理的方法,该方法包括:获取输入数据,输入数据包括至少一个U行V列的第一数据,其中,同一行的第一数据的属性不相同;将至少一个U行V列的第一数据重排为I行J列的第二数据,其中,同一行的第二数据的属性相同;将第A行的第二数据写入第一存储部件的同一行,第一存储部件的同一行用于存储属性相同的数据;其中,U、V、I、J均为正整数,第A行为I行中的任一行。
在本申请实施例中,相较于将同一行属性不相同的U行V列的第一数据在写入第一存储部件时再选取属性相同的数据存入第一存储部件的相应位置,将同一行属性不同的U行V列的第一数据重排后的数据直接写入第一存储部件,能够提高系统的处理效率。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:读取第A行的第二数据;将第A行的第二数据写入第二存储部件的同一行。
在一些可能的实施方式中,述第一存储部件包括第一存储模块和第二存储模块,基于单路输入的数据处理的方法还包括:若第一存储模块处于空闲状态,将第A行的第二数据写入第一存储模块的同一行;或者,若第二存储模块处于空闲状态,将第A行的第二数据写入第二存储模块的同一行。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:存储I行J列的第二数据的位置信息,位置信息用于指示I行J列的第二数据存储在第一存储模块中或者第二存储模块中;读取位置信息,并根据位置信息读取第A行的第二数据。
在一些可能的实施方式中,根据位置信息读取第A行的第二数据,包括:若位置信息指示第一存储模块,则从第一存储模块中读取第A行的第二数据;或者,若位置信息指示第二存储模块,则从第二存储模块中读取第A行的第二数据。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:发送第一完成信号和位置信息;根据第一完成信号和位置信息确定第一存储模块是否处于空闲状态或者第二存储模块是否处于空闲状态。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:在第一周期内,将I行J列的第二数据中的B个数据写入第一存储部件;在第二周期内,从第一存储部件中读取第A行的第二数据;其中,第一周期和第二周期的时长相等,J>B,B>1,且B为正整数。
在一些可能的实施方式中,第一存储部件包括相邻排列的r1个存储块,基于单路输入的数据处理的方法还包括:将M行N列的数据存储在r1个存储块中的每个存储块中;其中,M、N和r1均为正整数,M=I,N=J/r1。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:在第一周期内,将B个数据中属性相同的数据写入一个存储块的同一行;在第二周期内,从r1个存储块的同一行中读取第A行的第二数据。
在一些可能的实施方式中,第二存储部件包括第三存储模块和第四存储模块,基于单路输入的数据处理的方法还包括:在第三周期内,将第A行的第二数据写入第三存储模块的同一行;在第四周期内,将第C行的第二数据写入第四存储模块的同一行,其中,第四周期与第三周期的时长相等,第C行为I行中的任一行。
在一些可能的实施方式中,输入数据还包括第一掩码,第一掩码用于标识U行V列的第一数据的有效性。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:根据第二完成信号将第一掩码写入标识部件。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:第二掩码,第二掩码用于标识I行J列的第二数据的有效性;将第二掩码写入第二存储部件,以便第二存储部件根据第二掩码确定I行J列的第二数据的有效性。
在一些可能的实施方式中,基于单路输入的数据处理的方法还包括:发送第三完成信号;根据第三完成信号读取第A行的第二数据。
第三方面,提供了一种计算机设备包括:第一方面或第一方面的任一可能的实施方式中的基于单路输入的数据处理装置。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现第二方面或第二方面的任一可能的实施方式中的基于单路输入的数据处理的方法。
第五方面,提供了一种芯片包括处理器,处理器与存储器耦合,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得芯片执行第二方面或第二方面的任一可能的实施方式中的基于单路输入的数据处理的方法。
附图说明
图1示出了本申请实施例中一种基于单路输入的数据处理装置的示意图;
图2示出了本申请实施例中另一种基于单路输入的数据处理装置的示意图;
图3示出了本申请实施例中一种第一存储部件的示意图;
图4示出了本申请实施例中一种存储块的示意图;
图5示出了本申请实施例中一种第一存储部件存储I行J列的第二数据的示意图;
图6示出了本申请实施例中一种第二控制部件向第二存储部件写入数据的过程示意图;
图7示出了本申请实施例中一种芯片的硬件结构示意图。
具体实施方式
下面结合附图,对本申请实施例中的技术方案进行描述。应理解,本说明书中的具体的例子只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此不作限定。
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。
图1示出了本申请实施例中一种基于单路输入的数据处理装置的示意图。如图1所示,基于单路输入的数据处理装置1包括第一控制部件10和第一存储部件30。
第一控制部件10用于获取输入数据,输入数据包括至少一个U行V列的第一数据,其中,同一行的第一数据的属性不相同;
第一控制部件10还用于将至少一个U行V列的第一数据重排为I行J列的第二数据,其中,同一行的第二数据的属性相同;
第一存储部件30的同一行用于存储属性相同的数据;
第一控制部件10还用于将第A行的第二数据写入第一存储部件30的同一行;
其中,U、V、I、J均为正整数,第A行为I行中的任一行。
应理解,基于单路输入的输入数据可以是一个控制器发送的输入数据。并且,输入数据中同一列的第一数据的属性可以相同,也可以不同。第一数据的属性包括但不限于图形的形状、图形的颜色和几何图形中同一位置的坐标信息等,具体可以实际情况确定。并且,U行V列的第一数据中任一数据的大小和I行J列的第二数据中任一数据的大小相等,例如,均为32bit。第一存储部件30中相邻两行可以存储属性相同的数据或者属性不同的数据。
在实际应用中,若输入数据包括多个U行V列的第一数据,第一控制部件10可以在获取多个U行V列的第一数据后,再将多个U行V列的第一数据重排为I行J列的第二数据;或者,第一控制部件10可以在每获取一个U行V列的第一数据,就将该U行V列的第一数据重排为I1行J1列的第二数据,多个I1行J1列的第二数据组合成I行J列的第二数据。也就是说,第一控制部件10重排U行V列的第一数据的时间不固定。
并且,第一控制部件10可以采用多种方式重排U行V列的第一数据。例如,可以预先设置I行J列的第二数据中每行数据的属性,根据每行的属性对U行V列的第一数据中的数据进行重排。若I行J列的第二数据中第一行数据的属性为三角形的顶点坐标,第一控制部件10将U行V列的第一数据中属性是三角形的顶点坐标的数据重排为I行J列的第二数据中第一行的数据。或者,同一列的第一数据的属性相同,第一控制部件10可以对至少一个U行V列的第一数据进行转置,以获得I行J列的第二数据。
需要说明的是,输入数据中U行V列的第一数据的数量、U的值和V的值均可以根据实际情况确定。并且,U的值和V的值可以相等,也可以不相等。I的值可以等于V的值,I的值也可以不等于V的值。J的值可以等于U的值,J的值也可以不等于U的值。
在本申请实施例中,相较于将同一行属性不相同的U行V列的第一数据在写入第一存储部件30时再选取属性相同的数据存入第一存储部件30的相应位置,将同一行属性不同的U行V列的第一数据重排后的数据直接写入第一存储部件30,能够提高系统的处理效率。
图2所示,基于单路输入的数据处理装置还包括第二控制部件20:第二控制部件20用于读取第A行的第二数据;第二控制部件20还用于将第A行的第二数据写入第二存储部件40的同一行。
举例说明,在一个周期内,第二控制部件20读取第一行的第二数据,并将第一行的第二数据写入第二存储部件40的第一行;在下一个周期内,第二控制部件20读取第二行的第二数据,并将第二行的第二数据写入第二存储部件40的第二行。需要说明的是,第二控制部件20还可以将第二行的第二数据写入第二存储部件40的第一行。也就是说,在同一个周期内,第二控制部件20可以将任一行的第二数据写入第二存储部件40的同一行,在不同的周期内,第二控制部件20可以将不同行的第二数据分别写入第二存储部件40的同一行或者不同行。
在本申请实施例中,相较于边读边写的数据处理模式,第二控制部件20可以从第一存储部件30中一次性读取多个属性相同的数据,加快了读取属相相同的数据的效率。并且,还在出现写入故障时,相较于边读边写的数据处理模式,能够减小反压产生的次数或者延缓反压产生的时间。
应理解,第一控制部件10将I行J列的第二数据写入第一存储部件30后可以发送信号,以表示第一存储部件30的写入状态;也可以不发送信号。
应理解,第一存储部件30可以仅包括一个存储模块,也可以包括多个存储模块。
如图2所示,第一存储部件30包括第一存储模块31和第二存储模块32;若第一存储模块31处于空闲状态,则第一控制部件10还用于将第A行的第二数据写入第一存储模块31;或者,若第二存储模块32处于空闲状态,则第一控制部件10还用于将第A行的第二数据写入第二存储模块32。
应理解,若第一存储模块31和第二存储模块32均处于空闲状态,第一控制部件10可以将I行的第二数据写入第一存储模块31中和第二存储模块32中;第一控制部件10也可以将I行的第二数据中写入第一存储模块31中或者第二存储模块32中。
举例说明,在第一存储模块31和第二存储模块32均处于空闲状态时,第一控制部件10有以下写入方式:
方式一:在一个周期内,第一控制部件10将第一行的第二数据写入第一存储模块31的第一行;在下一个周期内,第一控制部件10将第二行的第二数据写入第二存储模块32的第二行。需要说明的是,第一控制部件10还可以将第二行的第二数据写入第二存储模块32的第一行。
方式二:在一个周期内,第一控制部件10将第一行的第二数据写入第一存储模块31的第一行;在下一个周期内,第一控制部件10读取第二行的第二数据,并将第二行的第二数据写入第一存储模块31的第二行。需要说明的是,第一控制部件10还可以将第二行的第二数据写入第一存储模块31的第一行。
方式三:在一个周期内,第一控制部件10将第一行的第二数据写入第二存储模块32的第一行;在下一个周期内,第一控制部件10将第二行的第二数据写入第二存储模块32的第二行。需要说明的是,第一控制部件10还可以将第二行的第二数据写入第二存储模块32的第一行。
在实际应用中,在第二控制部件20对第一存储模块31中的第二数据进行读写时,若第二存储模块32处于空闲状态,第一控制部件10可以向第二存储模块32的同一行写入属性相同的数据。
在本申请实施例中,通过在第一存储部件30中设置多个存储模块,不仅可以存储更多的数据,还可以在发生写入故障时,延长第一存储部件30存储数据的时间,从而进一步延缓反压产生的时间。以及,在第二控制部件20从第一存储模块31中读写数据时,第一控制部件10可以向空闲的第二存储模块32写入数据,以实现并行读写操作,从而进一步提高系统处理的效率。
根据上述实施例可知,I行J列的第二数据可以写入同一存储模块(例如,第一存储模块31,或者,第二存储模块32),也可以写入不同存储模块中。若I行J列的第二数据被写入同一存储模块中,可以对I行J列的第二数据的存储位置做标识,也可以对I行J列的第二数据的存储位置不做标识。
若对I行J列的第二数据的存储位置不做标识,第二控制部件20可以在规定的时间内从第一存储模块31或者第二存储模块32中读取第二数据。例如,在第一个周期内,第二控制部件20可以从第一存储模块31读取第二数据;在第二个周期内,第二控制部件20可以从第二存储模块32读取第二数据。其中,在第一个周期内,若第一存储模块31中存储第二数据,第二控制部件20可以直接从第一存储模块31中读取第二数据;若第一存储模块31中未存储第二数据,第二控制部件20可以不读取第二数据直至第二个周期。
若对I行J列的第二数据的存储位置做标识,例如,可以在基于单路输入的数据处理装置中增加存储I行J列的第二数据的位置信息的部件。
可选地,在本申请的一些实施例中,基于单路输入的数据处理装置1还包括标识部件50:标识部件50用于存储I行J列的第二数据的位置信息,位置信息用于指示I行J列的第二数据存储在第一存储模块31中或者第二存储模块32中;第二控制部件20还用于读取I行J列的第二数据的位置信息,并根据I行J列的第二数据的位置信息读取第A行的第二数据。这样,第二控制部件20根据I行J列的第二数据的位置信息读取第A行的第二数据,使得每次读写的数据均来自同一存储模块,则第二控制部件20读写的数据具有关联性,有利于数据的处理。
进一步地,在本申请的一些实施例中,若I行J列的第二数据的位置信息指示第一存储模块31,则第二控制部件20还用于从第一存储模块31中读取第二数据;或者,若I行J列的第二数据的位置信息指示第二存储模块32,则第二控制部件20还用于从第二存储模块32中读取第二数据。
例如,第一控制部件10将I行J列的第二数据写入第一存储模块31时,第一控制部件10还将位置信息写入标识部件50,其中,位置信息指示第一存储模块31;第二控制部件20从标识部件50中读取该位置信息,并根据该位置信息从第一存储模块31中读取第二数据;或者,第一控制部件10将I行J列的第二数据写入第二存储模块32时,第一控制部件10还将位置信息写入标识部件50,其中,位置信息指示第二存储模块32;第二控制部件20从标识部件50中读取该位置信息,并根据该位置信息从第二存储模块32中读取第二数据。
可选地,在本申请的一些实施例中,第二控制部件20还用于向第一控制部件10发送第一完成信号和I行J列的第二数据的位置信息;第一控制部件10还用于根据第一完成信号和I行J列的第二数据的位置信息确定第一存储模块31是否处于空闲状态或者第二存储模块32是否处于空闲状态。
例如,可以在第二控制部件20将第一存储模块31中的I行J列的第二数据写入第二存储部件40后,第二控制部件20向第一控制部件10发送第一完成信号和I行J列的第二数据的位置信息,第一控制部件10根据第一完成信号和I行J列的第二数据的位置信息确定第一存储模块31处于空闲状态,其中,I行J列的第二数据的位置信息指示第一存储模块31。
或者,可以在第二控制部件20将第二存储模块32中的I行J列的第二数据写入第二存储部件40后,第二控制部件20向第一控制部件10发送第一完成信号和I行J列的第二数据的位置信息,第一控制部件10根据第一完成信号和I行J列的第二数据的位置信息确定第二存储模块32处于空闲状态,其中,I行J列的第二数据的位置信息指示第二存储模块32。其中,第一完成信号可以是低电平。
应理解,上述实施例中,第一控制部件10的写入速度可以与第二控制部件20的读取速度相等,也可以与第二控制部件20的读取速度不相等。若第一控制部件10的写入速度与第二控制部件20的读取速度相等,则在相等的时间段内第一控制控制部件向第一存储部件30写入的数据量与第二控制部件20从第一存储部件30中读取的数据量相等;若第一控制部件10的写入速度与第二控制部件20的读取速度不相等,则在相等的时间段内第一控制控制部件向第一存储部件30写入的数据量与第二控制部件20从第一存储部件30中读取的数据量不相等。
可选地,在本申请的一些实施例中,在第一周期内,第一控制部件10还用于将I行J列的第二数据中的B个数据写入第一存储部件30;在第二周期内,第二控制部件20还用于读取第A行的第二数据;其中,第一周期和第二周期的时长相等,J>B,B>1,且B为正整数。
其中,第一周期和第二周期可以是芯片内部最小的时序时间单位,例如,时钟周期。B个数据可以包括多个属性相同的数据,例如,一个U行V列的第一数据重排后的数据。
在实际应用中,若输入数据包括r2个U行V列的第一数据,第一控制部件10将一个U行V列的第一数据重排为I1行J1列的第二数据,I1行J1列的第二数据为I行J列的第二数据中的部分数据,并且,r2个I1行J1列的第二数据组成I行J列的第二数据。其中,r2≥1。B个数据可以为I1行J1列的第二数据。I1行J1列的第二数据中同一行的数据的属性相同。
由此,第一控制部件10可以在r2个时钟周期内将I行J列的第二数据写入第一存储部件30,第二控制部件20可以在I个时钟周期内从第一存储部件30中读取I行J列的第二数据。其中,I<r2。
在本申请实施例中,由于在相等的时长内,第二控制部件20的读取速度大于第一控制部件10的写入速度。这样,在出现写入故障时,不仅可以进一步降低反压产生的概率,还可以进一步延缓反压产生的时间。
图3示出了本申请实施例的一种第一存储部件30的示意图。图4示出了本申请实施例的一种存储块RAM的示意图。如图3和图4所示,在本申请的一些实施例中,第一存储部件30包括相邻排列的r1个存储块RAM,r1个存储块RAM中的每个存储块RAM用于存储M行N列的数据;其中,M、N和r1均为正整数,M=I,N=J/r1。
图3中RAMf表示第f个RAM,f =1、2、3……。
可选地,在本申请的一些实施例中,在第一周期内,第一控制部件10还用于将B个数据中属性相同的数据写入一个存储块RAM的同一行;在第二周期内,第二控制部件20还用于从r1个存储块RAM的同一行中读取第A行的第二数据。
以B个数据是I1行J1列的第二数据为例进行说明。在第一周期内,第一控制部件10将I1行中任一行的数据写入一个存储块RAM的同一行。若N=J1,第一控制部件10可以在r1个第一周期内将r1个I1行中任一行的数据写入r1个存储块RAM的同一行;在第二周期内,第二控制部件20从r1个存储块RAM的同一行中读取第A行的第二数据。
如图2所示,第二存储部件40包括第三存储模块41和第四存储模块42,在第三周期内,第二控制部件20还用于将第A行的第二数据写入第三存储模块41的同一行;在第四周期内,第二控制部件20还用于将第C行的第二数据写入第四存储模块42的同一行,其中,第四周期与第三周期的时长相等,第C行为I行中的任一行。
需要说明的是,第C行与第A行为不同行。第三周期和第四周期可以是芯片内部最小可以处理的时序时间单位,例如,时钟周期。并且,第一周期的时长=第二周期的时长=第三周期的时长=第四周期的时长。
可选地,在本申请一些实施例中,输入数据还包括第一掩码,第一掩码用于标识U行V列的第一数据的有效性。
其中,第一掩码可以表示U行V列的第一数据中任一列的数据的有效性。
以U=V=4为例进行说明,若第一掩码为1111表示第一列的第一数据、第二列的第一数据、第三列的第一数据和第四列的第一数据均有效。
可选地,在本申请一些实施例中,如图2所示,基于单路输入的数据处理装置还包括标识部件50,标识部件50用于存储第一掩码,第一控制部件10还用于根据第二完成信号将第一掩码写入标识部件50。
其中,第二完成信号可以是发送输入数据的部件输出的。例如,可以是发送输入数据的部件输出的低电平。
可选地,在本申请的一些实施例中,标识部件50用于存储第二掩码,第二掩码用于标识I行J列的第二数据的有效性;第二控制部件20还用于将第二掩码写入第二存储部件40,以便第二存储部件40根据第二掩码确定I行J列的第二数据的有效性。
其中,第二掩码可以表示I行J列的第二数据中任一行的数据的有效性。
可选地,在本申请的一些实施例中,第一控制部件10还用于向第二控制部件20发送第三完成信号;第二控制部件20还用于根据第三完成信号读取第A行的第二数据。
举例说明,在第一控制部件10将I行J列的第二数据写入第一存储部件30后,第一控制部件10向第二控制部件20发送第三完成信号,第一控制部件10在接收到第三完成信号后读取第A行的第二数据。
或者,在第一控制部件10将I行J列的第二数据写入第一存储部件30和将第一掩码写入标识部件50后,第一控制部件10向第二控制部件20发送第三完成信号,第一控制部件10在接收到第三完成信号后读取第A行的第二数据。其中,第三完成信号可以是低电平。
需要说明的是,在本申请的一些实施例中,若第一存储部件30包括第一存储模块31和第二存储模块32,第一存储模块31和第二存储模块32的结构可以和第一存储部件30的结构相同;第一控制部件10向第一存储模块31和第二存储模块32写入I行J列的第二数据的方式可以和第一控制部件10向第一存储部件30写入I行J列的第二数据的方式相同;第二控制部件20从第一存储模块31和第二存储模块32中读取I行J列的第二数据的方式可以和第二控制部件20从第一存储部件30中读取I行J列的第二数据的方式相同。
为便于本领域技术人员的理解,如图2至图5所示,本申请实施例提出了一种具体实施例。图5示出了一种第一存储部件存储1行J列的第二数据的示意图。
在该实施例中,输入数据包括16个4行4列的第一数据。其中,同一行的第一数据的属性不同,同一列的第一数据的属性相同。第一控制部件10可以通过以下方式将16个4行4列的第一数据重排为8行32列的第二数据,并将8行32列的第二数据写入第一存储部件30。
第一控制部件10将第1个4行4列的第一数据重排为4行4列的第二数据,在第1个时钟周期内,第一控制部件10将第1行的第二数据V1X~V4X写入第1个存储块RAM1的第1行;第一控制部件10将第2行的第二数据V1Y~V4Y写入第5个存储块RAM5的第3行;第一控制部件10将第3行的第二数据V1Z~V4Z写入第3个存储块RAM3的第5行;第一控制部件10将第2行的第二数据V1W~V4W写入第7个存储块RAM7的第7行。
第一控制部件10将第2个4行4列的第一数据重排为4行4列的第二数据,在第2个时钟周期内,第一控制部件10将第1行的第二数据V5X~V8X写入第2个存储块RAM2的第1行;第一控制部件10将第2行的第二数据V5Y~V8Y写入第6个存储块RAM6的第3行;第一控制部件10将第3行的第二数据V5Z~V8Z写入第4个存储块RAM4的第5行;第一控制部件10将第2行的第二数据V5W~V8W写入第8个存储块RAM8的第7行。
第一控制部件10将第3个4行4列的第一数据重排为4行4列的第二数据,在第3个时钟周期内,第一控制部件10将第1行的第二数据V9X~V12X写入第3个存储块RAM3的第1行;第一控制部件10将第2行的第二数据V9Y~V12Y写入第7个存储块RAM7的第3行;第一控制部件10将第3行的第二数据V9Z~V12Z写入第1个存储块RAM1的第5行;第一控制部件10将第2行的第二数据V9W~V12W写入第5个存储块RAM5的第7行。
第一控制部件10将第4个4行4列的第一数据重排为4行4列的第二数据,在第4个时钟周期内,第一控制部件10将第1行的第二数据V13X~V16X写入第4个存储块RAM4的第1行;第一控制部件10将第2行的第二数据V13Y~V16Y写入第8个存储块RAM8的第3行;第一控制部件10将第3行的第二数据V13Z~V16Z写入第2个存储块RAM2的第5行;第一控制部件10将第2行的第二数据V13W~V16W写入第6个存储块RAM6的第7行。
第一控制部件10将第5个4行4列的第一数据重排为4行4列的第二数据,在第5个时钟周期内,第一控制部件10将第1行的第二数据V17X~V20X写入第5个存储块RAM5的第1行;第一控制部件10将第2行的第二数据V17Y~V20Y写入第1个存储块RAM1的第3行;第一控制部件10将第3行的第二数据V17Z~V20Z写入第7个存储块RAM7的第5行;第一控制部件10将第2行的第二数据V17W~V20W写入第3个存储块RAM3的第7行。
第一控制部件10将第6个4行4列的第一数据重排为4行4列的第二数据,在第6个时钟周期内,第一控制部件10将第1行的第二数据V21X~V24X写入第6个存储块RAM6的第1行;第一控制部件10将第2行的第二数据V21Y~V24Y写入第2个存储块RAM2的第3行;第一控制部件10将第3行的第二数据V21Z~V24Z写入第8个存储块RAM8的第5行;第一控制部件10将第2行的第二数据V21W~V24W写入第4个存储块RAM4的第7行。
第一控制部件10将第7个4行4列的第一数据重排为4行4列的第二数据,在第7个时钟周期内,第一控制部件10将第1行的第二数据V25X~V28X写入第7个存储块RAM7的第1行;第一控制部件10将第2行的第二数据V25Y~V28Y写入第3个存储块RAM3的第3行;第一控制部件10将第3行的第二数据V25Z~V28Z写入第5个存储块RAM5的第5行;第一控制部件10将第2行的第二数据V25W~V28W写入第1个存储块RAM1的第7行。
第一控制部件10将第8个4行4列的第一数据重排为4行4列的第二数据,在第8个时钟周期内,第一控制部件10将第1行的第二数据V29X~V32X写入第8个存储块RAM8的第1行;第一控制部件10将第2行的第二数据V29Y~V32Y写入第4个存储块RAM4的第3行;第一控制部件10将第3行的第二数据V29Z~V32Z写入第6个存储块RAM6的第5行;第一控制部件10将第2行的第二数据V29W~V32W写入第2个存储块RAM2的第7行。
第一控制部件10将第9个4行4列的第一数据重排为4行4列的第二数据,在第9个时钟周期内,第一控制部件10将第1行的第二数据V33X~V36X写入第1个存储块RAM1的第2行;第一控制部件10将第2行的第二数据V33Y~V36Y写入第5个存储块RAM5的第4行;第一控制部件10将第3行的第二数据V33Z~V36Z写入第3个存储块RAM3的第6行;第一控制部件10将第2行的第二数据V33W~V36W写入第7个存储块RAM7的第8行。
第一控制部件10将第10个4行4列的第一数据重排为4行4列的第二数据,在第10个时钟周期内,第一控制部件10将第1行的第二数据V37X~V40X写入第2个存储块RAM2的第2行;第一控制部件10将第2行的第二数据V37Y~V40Y写入第6个存储块RAM6的第4行;第一控制部件10将第3行的第二数据V37Z~V40Z写入第4个存储块RAM4的第6行;第一控制部件10将第2行的第二数据V37W~V40W写入第8个存储块RAM8的第8行。
第一控制部件10将第11个4行4列的第一数据重排为4行4列的第二数据,在第11个时钟周期内,第一控制部件10将第1行的第二数据V41X~V44X写入第3个存储块RAM3的第2行;第一控制部件10将第2行的第二数据V41Y~V44Y写入第7个存储块RAM7的第4行;第一控制部件10将第3行的第二数据V41Z~V44Z写入第1个存储块RAM1的第6行;第一控制部件10将第2行的第二数据V41W~V44W写入第5个存储块RAM5的第8行。
第一控制部件10将第12个4行4列的第一数据重排为4行4列的第二数据,在第12个时钟周期内,第一控制部件10将第1行的第二数据V45X~V48X写入第4个存储块RAM4的第2行;第一控制部件10将第2行的第二数据V45Y~V48Y写入第8个存储块RAM8的第4行;第一控制部件10将第3行的第二数据V45Z~V48Z写入第2个存储块RAM2的第6行;第一控制部件10将第2行的第二数据V45W~V48W写入第6个存储块RAM6的第8行。
第一控制部件10将第13个4行4列的第一数据重排为4行4列的第二数据,在第13个时钟周期内,第一控制部件10将第1行的第二数据V49X~V52X写入第5个存储块RAM5的第2行;第一控制部件10将第2行的第二数据V49Y~V52Y写入第1个存储块RAM1的第4行;第一控制部件10将第3行的第二数据V49Z~V52Z写入第7个存储块RAM7的第6行;第一控制部件10将第2行的第二数据V49W~V52W写入第3个存储块RAM3的第8行。
第一控制部件10将第14个4行4列的第一数据重排为4行4列的第二数据,在第14个时钟周期内,第一控制部件10将第1行的第二数据V53X~V56X写入第6个存储块RAM6的第2行;第一控制部件10将第2行的第二数据V53Y~V56Y写入第2个存储块RAM2的第4行;第一控制部件10将第3行的第二数据V53Z~V56Z写入第8个存储块RAM8的第6行;第一控制部件10将第2行的第二数据V53W~V56W写入第4个存储块RAM4的第8行。
第一控制部件10将第15个4行4列的第一数据重排为4行4列的第二数据,在第15个时钟周期内,第一控制部件10将第1行的第二数据V57X~V60X写入第7个存储块RAM7的第2行;第一控制部件10将第2行的第二数据V57Y~V60Y写入第3个存储块RAM3的第4行;第一控制部件10将第3行的第二数据V57Z~V60Z写入第5个存储块RAM5的第6行;第一控制部件10将第2行的第二数据V57W~V60W写入第1个存储块RAM1的第8行。
第一控制部件10将第16个4行4列的第一数据重排为4行4列的第二数据,在第16个时钟周期内,第一控制部件10将第1行的第二数据V61X~V64X写入第8个存储块RAM8的第2行;第一控制部件10将第2行的第二数据V61Y~V64Y写入第4个存储块RAM4的第4行;第一控制部件10将第3行的第二数据V61Z~V64Z写入第6个存储块RAM6的第6行;第一控制部件10将第2行的第二数据61W~V64W写入第2个存储块RAM2的第8行。
第一控制部件10将8行32列的第二数据写入第一存储部件30后向第二控制部件20发送第三完成信号,第二控制部件20将从第一存储部件30中读写数据。
需要说明的是,若第一存储部件30包括第一存储模块31和第二存储模块32,第一控制部件10将8行32列的第二数据写入第一存储模块31或者第二存储模块32的过程可以与上述过程相同。进一步地,若第一控制部件10将8行32列的第二数据写入第一存储模块31后可以向第二控制部件20发送第三完成信号。并且,第二控制部件20从标识部件50中读取8行32列的第二数据的位置信息,若8行32列的第二数据的位置信息指示第一存储模块31,第二控制部件20将根据第三完成信号和8行32列的第二数据的位置信息从第一存储模块31中读取数据。在第二控制部件20读写数据的过程中,若第二存储模块32处于空闲状态,第一控制部件10可以向第二存储模块32中写入同一行属性相同的数据。
并且,输入数据还包括第一掩码,第一掩码可以用二进制数据表示。可以用4位二进制数据表示一个4行4列的第一数据中每列数据的有效性。若第一控制部件10接收到输入数据的发送部件输出的第二完成信号,第一控制部件10将16个第一掩码写入标识部件50。
可以理解的是,第一掩码可以表示4行4列的第二数据中每行数据的有效性。因此,第二掩码可以是16个第一掩码拼接得到的。
如图2至图6所示,第二存储部件20包括第三存储模块41和第四存储模块42。其中,第三存储模块41可以包括多个第一子存储模块AS,第四存储模块42也可以包括多个第二子存储模块BS。其中,第一子存储模块AS的数量和第二子存储模块BS的数量可以根据实际情况确定。在本申请实施例中,第三存储模块41包括4个第一子存储模块AS,第四存储模块42包括4个第二子存储模块BS,第一子存储模块AS和第二子存储模块BS可以分别包括多个子存储块R,每个子存储块R可以存储1行8列属性相同的数据。
图2中,ASg表示第g个第一子存储模块,BSh表示第h个第二子存储模块,例如,g=h=1、2、3、4。
在本申请实施例中,第二控制部件20可以通过以下方式将8行32列的第二数据写入第二存储部件40。
在第1个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第1行的数据写入第1个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第1行的数据写入第2个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第1行的数据写入第3个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第1行的数据写入第4个第一子存储模块AS中第1行的子存储块R。
在第2个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第2行的数据写入第1个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第2行的数据写入第2个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第2行的数据写入第3个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第2行的数据写入第4个第二子存储模块BS中第1行的子存储块R。
在第3个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第3行的数据写入第1个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第3行的数据写入第2个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第3行的数据写入第3个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第3行的数据写入第4个第一子存储模块AS中第1行的子存储块R。
在第4个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第4行的数据写入第1个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第4行的数据写入第2个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第4行的数据写入第3个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第4行的数据写入第4个第二子存储模块BS中第1行的子存储块R。
在第5个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第5行的数据写入第1个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第5行的数据写入第2个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第5行的数据写入第3个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第5行的数据写入第4个第一子存储模块AS中第1行的子存储块R。
在第6个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第6行的数据写入第1个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第6行的数据写入第2个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第6行的数据写入第3个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第6行的数据写入第4个第二子存储模块BS中第1行的子存储块R。
在第7个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第7行的数据写入第1个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第7行的数据写入第2个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第7行的数据写入第3个第一子存储模块AS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第7行的数据写入第4个第一子存储模块AS中第1行的子存储块R。
在第8个时钟周期内,第二控制部件20读取第1个至第2个存储块RAM中第8行的数据写入第1个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第3个至第4个存储块RAM中第8行的数据写入第2个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第5个至第6个存储块RAM中第8行的数据写入第3个第二子存储模块BS中第1行的子存储块R;第二控制部件20读取第7个至第8个存储块RAM中第8行的数据写入第4个第二子存储模块BS中第1行的子存储块R。
需要说明的是,若第二控制部件20将第一存储模块31中的8行32列的第二数据写入第二存储部件40后,第二控制部件20可以向第一控制部件10发送第一完成信号和8行32列的第二数据的位置信息(位置信息指示第一存储模块31),第一控制部件10可以根据第一完成信号和8行32列的第二数据的位置信息确定第一存储模块31处于空闲状态。
上述实施例和附图示意了一种重排后的数据被写入不同的存储块RAM的方式,本申请还可以通过其他方式写入。例如,在每个时钟周期内,将4行4列的第二数据分别写入同一个存储块RAM中。并且,第一存储部件30中存储块RAM的个数、存储块RAM的行数和列数、第一子存储模块AS的个数、第二子存储模块BS的个数以及第一子存储模块AS中子存储块R的个数、第二子存储模块BS中子存储块R的个数也可以根据实际情况变化。例如,第一子存储模块AS可以包括256行4列的子存储块R,第二子存储模块BS也可以包括256行4列的子存储块R。其中,每个子存储块R中存储属性相同的数据,相邻两个的子存储块R之间可以存储属性不相同的数据。
上文详细地描述了本申请实施例的装置实施例,下面描述本申请实施例的方法实施例,方法实施例与装置实施例相互对应,因此方法实施例中未详细描述的部分可参见前面装置实施例。
本申请实施例还提供了一种基于单路输入的数据处理的方法,该方法包括:获取输入数据,输入数据包括至少一个U行V列的第一数据,其中,同一行的第一数据的属性不相同;将至少一个U行V列的第一数据重排为I行J列的第二数据,其中,同一行的第二数据的属性相同;将第A行的第二数据写入第一存储部件的同一行,第一存储部件的同一行用于存储属性相同的数据;其中,U、V、I、J均为正整数,第A行为I行中的任一行。
在一些实施例中,基于单路输入的数据处理的方法还包括:读取第A行的第二数据;将第A行的第二数据写入第二存储部件的同一行。
在一些实施例中,述第一存储部件包括第一存储模块和第二存储模块,基于单路输入的数据处理的方法还包括:若第一存储模块处于空闲状态,将第A行的第二数据写入第一存储模块的同一行;或者,若第二存储模块处于空闲状态,将第A行的第二数据写入第二存储模块的同一行。
在一些实施例中,基于单路输入的数据处理的方法还包括:存储I行J列的第二数据的位置信息,位置信息用于指示I行J列的第二数据存储在第一存储模块中或者第二存储模块中;读取位置信息,并根据位置信息读取第A行的第二数据。
在一些实施例中,根据位置信息读取第A行的第二数据,包括:若位置信息指示第一存储模块,则从第一存储模块中读取第A行的第二数据;或者,若位置信息指示第二存储模块,则从第二存储模块中读取第A行的第二数据。
在一些实施例中,基于单路输入的数据处理的方法还包括:发送第一完成信号和位置信息;根据第一完成信号和位置信息确定第一存储模块是否处于空闲状态或者第二存储模块是否处于空闲状态。
在一些实施例中,基于单路输入的数据处理的方法还包括:在第一周期内,将I行J列的第二数据中的B个数据写入第一存储部件;在第二周期内,从第一存储部件中读取第A行的第二数据;其中,第一周期和第二周期的时长相等,J>B,B>1,且B为正整数。
在一些实施例中,第一存储部件包括相邻排列的r1个存储块,基于单路输入的数据处理的方法还包括:将M行N列的数据存储在r1个存储块中的每个存储块中;其中,M、N和r1均为正整数,M=I,N=J/r1。
在一些实施例中,基于单路输入的数据处理的方法还包括:在第一周期内,将B个数据中属性相同的数据写入一个存储块的同一行;在第二周期内,从r1个存储块的同一行中读取第A行的第二数据。
在一些实施例中,第二存储部件包括第三存储模块和第四存储模块,基于单路输入的数据处理的方法还包括:在第三周期内,将第A行的第二数据写入第三存储模块的同一行;在第四周期内,将第C行的第二数据写入第四存储模块的同一行,其中,第四周期与第三周期的时长相等,第C行为I行中的任一行。
在一些实施例中,输入数据还包括第一掩码,第一掩码用于标识U行V列的第一数据的有效性。
在一些实施例中,基于单路输入的数据处理的方法还包括:根据第二完成信号将第一掩码写入标识部件。
在一些实施例中,基于单路输入的数据处理的方法还包括:第二掩码,第二掩码用于标识I行J列的第二数据的有效性;将第二掩码写入第二存储部件,以便第二存储部件根据第二掩码确定I行J列的第二数据的有效性。
在一些实施例中,基于单路输入的数据处理的方法还包括:发送第三完成信号;根据第三完成信号读取第A行的第二数据。
本申请实施例还提供了一种计算机设备包括上述实施例中的基于单路输入的数据处理装置。
图7是本申请实施例的芯片的硬件结构示意图。图7所示的芯片700包括存储器701、处理器702、通信接口703以及总线704。其中,存储器701、处理器702、通信接口703通过总线704实现彼此之间的通信连接。
存储器701可以是只读存储器(read-only memory,ROM),静态存储设备和随机存取存储器(random access memory,RAM)。存储器701可以存储程序,当存储器701中存储的程序被处理器702执行时,处理器702和通信接口703用于执行本申请实施例的基于单路输入的数据处理的方法的各个步骤。
处理器702可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以执行本申请实施例的基于单路输入的数据处理的方法。
处理器702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的基于单路输入的数据处理的方法的各个步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器702还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器702读取存储器701中的信息,结合其硬件执行本申请实施例的基于单路输入的数据处理的方法。
通信接口703使用例如但不限于收发器一类的收发装置,来实现装置700与其他设备或通信网络之间的通信。例如,可以通过通信接口703获取未知设备的流量数据。
总线704可包括在装置700各个部件(例如,存储器701、处理器702、通信接口703)之间传送信息的通路。
应注意,尽管上述装置700仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置700还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置700还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置700也可仅仅包括实现本申请实施例所必须的器件,而不必包括图7中所示的全部器件。
本申请实施例还提供了一种计算机可读存储介质,存储用于设备执行的程序代码,程序代码包括用于执行上述基于单路输入的数据处理的方法中的步骤的指令。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述基于单路输入的数据处理的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。
所描述的实施例中的各方面、实施方式、实现或特征能够单独使用或以任意组合的方式使用。所描述的实施例中的各方面可由软件、硬件或软硬件的结合实现。所描述的实施例也可以由存储有计算机可读代码的计算机可读介质体现,该计算机可读代码包括可由至少一个计算装置执行的指令。计算机可读介质可与任何能够存储数据的数据存储装置相关联,该数据可由计算机系统读取。用于举例的计算机可读介质可以包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带以及光数据存储装置等。计算机可读介质还可以分布于通过网络联接的计算机系统中,这样计算机可读代码就可以分布式存储并执行。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本申请的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以权利要求的保护范围为准。
Claims (31)
1.一种基于单路输入的数据处理装置,其特征在于,包括第一控制部件和第一存储部件:所述第一控制部件用于获取输入数据,所述输入数据包括至少一个U行V列的第一数据,其中,同一行的所述第一数据的属性不相同;
所述第一控制部件还用于将所述至少一个U行V列的第一数据重排为I行J列的第二数据,其中,同一行的所述第二数据的属性相同;
所述第一存储部件的同一行用于存储属性相同的数据;
所述第一控制部件还用于将第A行的第二数据写入所述第一存储部件的同一行;
其中,U、V、I、J均为正整数,所述第A行为所述I行中的任一行。
2.根据权利要求1所述的基于单路输入的数据处理装置,其特征在于,所述基于单路输入的数据处理装置还包括第二控制部件:
所述第二控制部件用于读取所述第A行的第二数据;
所述第二控制部件还用于将所述第A行的第二数据写入第二存储部件的同一行。
3.根据权利要求1所述的基于单路输入的数据处理装置,其特征在于,所述第一存储部件包括第一存储模块和第二存储模块;
若所述第一存储模块处于空闲状态,则所述第一控制部件还用于将所述第A行的第二数据写入所述第一存储模块的同一行;或者,
若所述第二存储模块处于空闲状态,则所述第一控制部件还用于将所述第A行的第二数据写入所述第二存储模块的同一行。
4.根据权利要求3所述的基于单路输入的数据处理装置,其特征在于,所述基于单路输入的数据处理装置还包括标识部件和第二控制部件:
所述标识部件用于存储所述I行J列的第二数据的位置信息,所述位置信息用于指示所述I行J列的第二数据存储在所述第一存储模块中或者所述第二存储模块中;
所述第二控制部件还用于读取所述位置信息,并根据所述位置信息读取所述第A行的第二数据。
5.根据权利要求4所述的基于单路输入的数据处理装置,其特征在于,若所述位置信息指示所述第一存储模块,则所述第二控制部件还用于从所述第一存储模块中读取所述第A行的第二数据;或者,
若所述位置信息指示所述第二存储模块,则所述第二控制部件还用于从所述第二存储模块中读取所述第A行的第二数据。
6.根据权利要求5所述的基于单路输入的数据处理装置,其特征在于,所述第二控制部件还用于向所述第一控制部件发送第一完成信号和所述位置信息;
所述第一控制部件还用于根据所述第一完成信号和所述位置信息确定所述第一存储模块是否处于空闲状态或者所述第二存储模块是否处于空闲状态。
7.根据权利要求1所述的基于单路输入的数据处理装置,其特征在于,所述基于单路输入的数据处理装置还包括第二控制部件:
在第一周期内,所述第一控制部件还用于将所述I行J列的第二数据中的B个数据写入所述第一存储部件;在第二周期内,所述第二控制部件还用于读取所述第A行的第二数据;
其中,所述第一周期和所述第二周期的时长相等,J>B,B>1,且B为正整数。
8.根据权利要求7所述的基于单路输入的数据处理装置,其特征在于,所述第一存储部件包括相邻排列的r1个存储块,r1个所述存储块中的每个所述存储块用于存储M行N列的数据;
其中,M、N和r1均为正整数,M=I,N=J/r1。
9.根据权利要求8所述的基于单路输入的数据处理装置,其特征在于,在所述第一周期内,所述第一控制部件还用于将所述B个数据中属性相同的数据写入一个所述存储块的同一行;
在所述第二周期内,所述第二控制部件还用于从r1个所述存储块的同一行中读取所述第A行的第二数据。
10.根据权利要求2所述的基于单路输入的数据处理装置,其特征在于,所述第二存储部件包括第三存储模块和第四存储模块,在第三周期内,所述第二控制部件还用于将所述第A行的第二数据写入所述第三存储模块的同一行;
在第四周期内,所述第二控制部件还用于将第C行的第二数据写入所述第四存储模块的同一行,其中,所述第四周期与所述第三周期的时长相等,所述第C行为所述I行中的任一行。
11.根据权利要求1所述的基于单路输入的数据处理装置,其特征在于,所述输入数据还包括第一掩码,所述第一掩码用于标识所述U行V列的第一数据的有效性。
12.根据权利要求11所述的基于单路输入的数据处理装置,其特征在于,所述基于单路输入的数据处理装置还包括标识部件,所述标识部件用于存储所述第一掩码;
所述第一控制部件还用于根据第二完成信号将所述第一掩码写入所述标识部件。
13.根据权利要求12所述的基于单路输入的数据处理装置,其特征在于,所述基于单路输入的数据处理装置还包括第二控制部件:
所述标识部件还用于存储第二掩码,所述第二掩码用于标识所述I行J列的第二数据的有效性;
所述第二控制部件还用于将所述第二掩码写入第二存储部件,以便所述第二存储部件根据所述第二掩码确定所述I行J列的第二数据的有效性。
14.根据权利要求2所述的基于单路输入的数据处理装置,其特征在于,所述第一控制部件还用于向所述第二控制部件发送第三完成信号;
所述第二控制部件还用于根据所述第三完成信号读取所述第A行的第二数据。
15.一种基于单路输入的数据处理的方法,其特征在于,所述方法包括:
获取输入数据,所述输入数据包括至少一个U行V列的第一数据,其中,同一行的所述第一数据的属性不相同;
将所述至少一个U行V列的第一数据重排为I行J列的第二数据,其中,同一行的所述第二数据的属性相同;
将第A行的第二数据写入第一存储部件的同一行,所述第一存储部件的同一行用于存储属性相同的数据;
其中,U、V、I、J均为正整数,所述第A行为所述I行中的任一行。
16.根据权利要求15所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
读取所述第A行的第二数据;
将所述第A行的第二数据写入第二存储部件的同一行。
17.根据权利要求15所述的基于单路输入的数据处理的方法,其特征在于,所述第一存储部件包括第一存储模块和第二存储模块,所述方法还包括:
若所述第一存储模块处于空闲状态,将所述第A行的第二数据写入所述第一存储模块的同一行;或者,
若所述第二存储模块处于空闲状态,将所述第A行的第二数据写入所述第二存储模块的同一行。
18.根据权利要求17所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
存储所述I行J列的第二数据的位置信息,所述位置信息用于指示所述I行J列的第二数据存储在所述第一存储模块中或者所述第二存储模块中;
读取所述位置信息,并根据所述位置信息读取所述第A行的第二数据。
19.根据权利要求18所述的基于单路输入的数据处理的方法,其特征在于,所述根据所述位置信息读取所述第A行的第二数据,包括:
若所述位置信息指示所述第一存储模块,则从所述第一存储模块中读取所述第A行的第二数据;或者,
若所述位置信息指示所述第二存储模块,则从所述第二存储模块中读取所述第A行的第二数据。
20.根据权利要求19所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
发送第一完成信号和所述位置信息;
根据所述第一完成信号和所述位置信息确定所述第一存储模块是否处于空闲状态或者所述第二存储模块是否处于空闲状态。
21.根据权利要求15所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
在第一周期内,将所述I行J列的第二数据中的B个数据写入所述第一存储部件;
在第二周期内,从所述第一存储部件中读取所述第A行的第二数据;
其中,所述第一周期和所述第二周期的时长相等,J>B,B>1,且B为正整数。
22.根据权利要求21所述的基于单路输入的数据处理的方法,其特征在于,所述第一存储部件包括相邻排列的r1个存储块,所述方法还包括:
将M行N列的数据存储在r1个所述存储块中的每个所述存储块中;
其中,M、N和r1均为正整数,M=I,N=J/r1。
23.根据权利要求22所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
在所述第一周期内,将所述B个数据中属性相同的数据写入一个所述存储块的同一行;
在所述第二周期内,从r1个所述存储块的同一行中读取所述第A行的第二数据。
24.根据权利要求16所述的基于单路输入的数据处理的方法,其特征在于,所述第二存储部件包括第三存储模块和第四存储模块,所述方法还包括:
在第三周期内,将所述第A行的第二数据写入所述第三存储模块的同一行;
在第四周期内,将第C行的第二数据写入所述第四存储模块的同一行,其中,所述第四周期与所述第三周期的时长相等,所述第C行为所述I行中的任一行。
25.根据权利要求15所述的基于单路输入的数据处理的方法,其特征在于,所述输入数据还包括第一掩码,所述第一掩码用于标识所述U行V列的第一数据的有效性。
26.根据权利要求25所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
根据第二完成信号将所述第一掩码写入标识部件。
27.根据权利要求26所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
第二掩码,所述第二掩码用于标识所述I行J列的第二数据的有效性;
将所述第二掩码写入第二存储部件,以便所述第二存储部件根据所述第二掩码确定所述I行J列的第二数据的有效性。
28.根据权利要求16所述的基于单路输入的数据处理的方法,其特征在于,所述方法还包括:
发送第三完成信号;
根据所述第三完成信号读取所述第A行的第二数据。
29.一种计算机设备,其特征在于,所述计算机设备包括:如权利要求1至14中任一项所述的基于单路输入的数据处理装置。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求15至28中任一项所述的基于单路输入的数据处理的方法。
31.一种芯片,其特征在于,所述芯片包括处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述芯片执行如权利要求15至28中任一项所述的基于单路输入的数据处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310194041.8A CN115951842A (zh) | 2023-02-23 | 2023-02-23 | 基于单路输入的数据处理装置、方法和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310194041.8A CN115951842A (zh) | 2023-02-23 | 2023-02-23 | 基于单路输入的数据处理装置、方法和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115951842A true CN115951842A (zh) | 2023-04-11 |
Family
ID=87286292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310194041.8A Pending CN115951842A (zh) | 2023-02-23 | 2023-02-23 | 基于单路输入的数据处理装置、方法和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115951842A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108961147A (zh) * | 2018-06-11 | 2018-12-07 | 北京集创北方科技股份有限公司 | 一种数据处理方法和装置 |
CN110874358A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 多属性列的存储、检索方法和装置以及电子设备 |
CN112368676A (zh) * | 2019-09-29 | 2021-02-12 | 深圳市大疆创新科技有限公司 | 处理数据的方法和设备 |
CN112835519A (zh) * | 2021-01-29 | 2021-05-25 | 杭州海康威视数字技术股份有限公司 | 一种数据读取方法、装置、电子设备及存储介质 |
US20210373799A1 (en) * | 2020-10-27 | 2021-12-02 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method for storing data and method for reading data |
CN114078543A (zh) * | 2020-08-18 | 2022-02-22 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
-
2023
- 2023-02-23 CN CN202310194041.8A patent/CN115951842A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108961147A (zh) * | 2018-06-11 | 2018-12-07 | 北京集创北方科技股份有限公司 | 一种数据处理方法和装置 |
CN110874358A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 多属性列的存储、检索方法和装置以及电子设备 |
CN112368676A (zh) * | 2019-09-29 | 2021-02-12 | 深圳市大疆创新科技有限公司 | 处理数据的方法和设备 |
CN114078543A (zh) * | 2020-08-18 | 2022-02-22 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
US20210373799A1 (en) * | 2020-10-27 | 2021-12-02 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method for storing data and method for reading data |
CN112835519A (zh) * | 2021-01-29 | 2021-05-25 | 杭州海康威视数字技术股份有限公司 | 一种数据读取方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
郑艳丽;李丽;潘红兵;李伟;沙金;: "基于SRAM的软硬件协同转置存储器设计与实现", 微电子学 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023391B2 (en) | Apparatus for data processing, artificial intelligence chip and electronic device | |
US20230062238A1 (en) | Pooling Processing Method and System Applied to Convolutional Neural Network | |
US20110264723A1 (en) | System and method for successive matrix transposes | |
US20140089548A1 (en) | Systems, Methods, and Articles of Manufacture To Stream Data | |
US20170308487A1 (en) | Data transfer control system, data transfer control method, and program storage medium | |
US11874898B2 (en) | Streaming-based artificial intelligence convolution processing method and apparatus, readable storage medium and terminal | |
CN106909320B (zh) | 一种多维数据扩充传输的方法、装置以及系统 | |
CN115951842A (zh) | 基于单路输入的数据处理装置、方法和计算机设备 | |
US8301869B2 (en) | Programmable controller for executing a plurality of independent sequence programs in parallel | |
US9767054B2 (en) | Data transfer control device and memory-containing device | |
US10452356B2 (en) | Arithmetic processing apparatus and control method for arithmetic processing apparatus | |
CN111459879A (zh) | 一种数据处理方法和片上系统 | |
CN111047504A (zh) | 一种基于SystemC的GPU子图像处理的TLM微结构 | |
US11687837B2 (en) | Architecture to support synchronization between core and inference engine for machine learning | |
US20220147097A1 (en) | Synchronization signal generating circuit, chip and synchronization method and device, based on multi-core architecture | |
CN111831328A (zh) | 数据处理的方法及装置 | |
US9886411B2 (en) | Data transfer device and data transfer method | |
CN111080508B (zh) | 一种基于dma的gpu子图像处理方法 | |
WO2021128820A1 (zh) | 数据处理方法、装置、设备、存储介质和程序产品 | |
CN115878050A (zh) | 基于多路输入的数据处理装置、方法和计算机设备 | |
US20240161493A1 (en) | Image processing device and image processing method | |
JP2024072386A (ja) | 画像処理装置及び画像処理方法 | |
US11630672B2 (en) | Reducing a number of commands transmitted to a co-processor by merging register-setting commands having address continuity | |
CN114268410B (zh) | 基于循环移位的交织方法、系统、设备及计算机存储介质 | |
US8966124B1 (en) | Systems, methods, and articles of manufacture to stream data |
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 |