本发明涉及数据处理领域,尤其涉及一种数据处理的方法和设备。
背景技术
随着网络的发展,网络处理芯片需要支持的数据处理越来越复杂,在网络处理芯片被制造出来后,网络处理芯片就无法支持新的数据处理。
随着网络处理芯片对于数据处理的操作越来越复杂,导致数据处理的流程不断增加,现有的网络处理芯片通过内嵌的可编程模块在对数据进行处理时很难支持对数据处理的升级操作。受到数据处理的不确定性和灵活性的影响,在网络处理芯片设计过程中无法考虑到所有数据处理的可能性,而内嵌的可编程模块在实现网络处理芯片的可扩展性和可编程性时,由于内嵌的可编程模块的硬件结构固定,导致网络处理芯片的可扩展性较差;在网络处理芯片内部资源有限的情况下,网络处理芯片的可编程性也较差。
技术实现要素:
为解决上述技术问题,本发明实施例提供一种数据处理的方法和设备,可以根据数据处理需求设置数据处理单元的执行顺序,从而实现不同的数据处理操作,如此,提高了数据处理的可扩展性和可编程性。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种数据处理的方法,包括:获取待处理数据;根据所述待处理数据的数据处理需求,确定执行数据处理操作的n个数据处理单元和所述n个数据处理单元在执行数据处理操作时的执行顺序;每个数据处理单元是用于执行一类数据处理操作的功能单元;n为大于1的整数;根据所述执行顺序,对所述待处理数据进行数据处理。
上述方案中,所述根据所述执行顺序,对所述待处理数据进行数据处理,包括:针对所述n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将所述第i个数据处理单元的待处理数据发送给所述第i个数据处理单元进行数据处理;接收来自所述第i个数据处理单元的处理后数据;根据所述执行顺序,确定第i+1个数据处理单元;将所述处理后数据发送给所述第i+1个数据处理单元进行数据处理。
上述方案中,所述根据所述执行顺序,对所述待处理数据进行数据处理,包括:针对所述n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将所述第i个数据处理单元的待处理数据发送给所述第i个数据处理单元进行数据处理;根据所述执行顺序,确定第i+1个数据处理单元;控制所述第i+1个数据处理单元对所述第i个数据处理单元的处理后数据进行数据处理。
上述方案中,在所述控制所述第i+1个数据处理单元对所述第i个数据处理单元的处理后数据进行数据处理之前,所述方法还包括:根据所述执行顺序,确定所述第i个数据处理单元与所述第i+1个数据处理单元之间存在k个数据处理单元,k为大于0的整数;将所述k个数据处理单元中的每个数据处理单元配置为透传状态,所述透传状态用于指示所述k个数据处理单元中的每个数据处理单元透传输入的数据。
上述方案中,所述数据处理操作包括:插入、删除、修改、运算和标记。
第二方面,本发明实施例中还提供了一种数据处理设备,该设备包括:处理器和n个数据处理单元;其中,所述处理器用于执行以下步骤:获取待处理数据;根据所述待处理数据的数据处理需求,确定执行数据处理操作的n个数据处理单元,并确定n个数据处理单元在执行数据处理操作时的执行顺序;每个数据处理单元是用于执行一类数据处理操作的功能单元,n为大于1的整数;根据所述n个数据处理单元在执行数据处理操作时的执行顺序,对所述待处理数据进行数据处理。
上述方案中,所述处理器具体用于执行以下步骤:针对所述n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将所述第i个数据处理单元的待处理数据发送给所述第i个数据处理单元进行数据处理;接收来自所述第i个数据处理单元的处理后数据;根据所述执行顺序,确定第i+1个数据处理单元;将所述处理后数据发送给所述第i+1个数据处理单元进行数据处理。
上述方案中,所述处理器具体用于执行以下步骤:针对所述n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将所述第i个数据处理单元的待处理数据发送给所述第i个数据处理单元进行数据处理;根据所述执行顺序,确定第i+1个数据处理单元;控制所述第i+1个数据处理单元对所述第i个数据处理单元的处理后数据进行数据处理。
上述方案中,所述处理器在执行所述控制所述第i+1个数据处理单元对所述第i个数据处理单元的处理后数据进行数据处理的步骤之前,还用于执行以下步骤:根据所述执行顺序,确定所述第i个数据处理单元与所述第i+1个数据处理单元之间存在k个数据处理单元,k为大于0的整数;将所述k个数据处理单元中的每个数据处理单元配置为透传状态,所述透传状态用于指示所述k个数据处理单元中的每个数据处理单元透传输入的数据。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以上任一项数据处理的方法。
本发明实施例提供的一种数据处理的方法和设备,获取待处理数据;根据待处理数据的数据处理需求,确定执行数据处理操作的n个数据处理单元和n个数据处理单元在执行数据处理操作时的执行顺序;每个数据处理单元是用于执行一类数据处理操作的功能单元,n为大于1的整数;根据执行顺序,对待处理数据进行数据处理。与现有技术相比,可以通过不同的数据处理单元实现不同的数据处理操作,进而根据不同的数据处理需求配置对应的数据处理单元的执行顺序,来完成不同的数据处理流程,如此,提高了数据处理的可扩展性和可编程性。
附图说明
图1为本发明实施例中数据处理的方法的第一实施例的流程示意图;
图2为本发明实施例中数据处理的方法的第二实施例的流程示意图;
图3为本发明实施例中数据处理单元的第一工作模式的结构示意图;
图4为本发明实施例中数据处理单元的第二工作模式的结构示意图;
图5为本发明实施例中执行数据处理操作的流程示意图;
图6为本发明实施例中数据处理的方法的第三实施例的流程示意图;
图7为本发明实施例中数据处理单元的第三工作模式的结构示意图;
图8为本发明实施例中数据处理主单元x的组成结构示意图;
图9为本发明实施例中数据处理主单元y的组成结构示意图;
图10为本发明实施例中数据处理主单元z的组成结构示意图;
图11为本发明实施例中数据处理设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供了一种数据处理的方法,该方法可应用于网络处理芯片,该芯片中可以包括:n个数据处理单元和控制器;其中,n个数据处理单元可以通过总线相连并进行相互之间的通信,控制器通过总线控制n个数据处理单元按照一定的执行顺序,对待处理数据进行数据处理。
在实际实施时,数据处理单元是用于执行一类数据处理操作的功能单元,功能单元具体可以由电路实现,也可以由程序代码实现,本发明实施例不作具体限定。
示例性的,数据处理单元执行的数据数据处理操作可以包括以下:
1)插入操作(action_insert),在对应的源报文偏移src_offset处插入q个(q=1、2、4等,可扩展)字节内容,即单次可插入8bit,16bit,32bit等长度的内容,具有可扩展性,相应位置处的报文内容后移,报文(描述符)长度增加。需要说明的是,插入操作及后续所有数据处理操作单位均为字节。本发明实施例中q取正整数,src_offset是指源报文中从数据起始位置开始的偏移量。
2)第一删除操作(action_remove),在对应src_offset处删除q个(q=1、2、4等,可扩展)字节内容,后续报文前移q个字节;报文(描述符)长度减小。
3)修改操作(action_set),在对应的src_offset处修改q个(q=1、2、4等,可扩展)字节内容,其余报文内容不变,报文(描述符)长度不变。
4)替换操作(action_move),将对应的src_offset处修改q个(q=1、2、4等,可扩展)字节内容替换为目的报文偏移dst_offset处q个(q=1、2、4等,可扩展)字节内容;报文(描述符)长度不变,dst_offset是指目的报文中从数据起始位置开始的偏移量。
5)加运算操作(action_add),将对应的src_offset处数据q个(q=1、2、4等,可扩展)字节内容替换为:(源报文内容+action_data),报文(描述符)长度不变,action_data是指增加的内容。
6)减运算操作(action_sub),将对应的src_offset处数据q个(q=1、2、4等,可扩展)字节内容替换为:(源报文内容-action_data),报文(描述符)长度不变,action_data是指减少的内容。
7)与运算操作(action_mask),将对应的src_offset处数据n(1,2,4)字节替换为:(源报文内容&mask),报文(描述符)长度不变,mask是指参与与运算的内容。
8)比较操作(action_fitter),将对应的src_offset处数据n(1,2,4)字节报文内容与fitter内容进行比对,根据比对结果确定报文操作,如:透传,上送,丢弃等等。
9)第一标记操作(action_checksum),打上对应的校验和checksum计算标记,例如:tcp校验和计算标记,udp校验和计算标记,ip校验和计算标记等。其中tcp为传输控制协议(transmissioncontrolprotocol)的英文缩写,upd为用户数据报协议(userdatagramprotocol)的英文缩写,ip为互联网协议(internetprotocol)的英文缩写。
10)第二标记操作(action_crc),打上对应的循环冗余校验(cyclicredundancycheck,crc)计算标记,根据需求也可支持多种不同的crc计算标记。
11)扩展功能(action_non),可以将增加的新处理操作利用具有该功能的单元实现。
12)连接操作(action_connect),将前后两拍数据按照有效数据进行连接,剔除中间的无效数据;插入整拍的数据也可以由执行该操作的数据处理单元进行扩展得到,理论上数据的增拍和减拍均不会有任何影响。
13)第二删除操作(action_del),整拍数据被删除后,整拍数据丢弃。
在实际实施时,数据处理单元可以实现上述一种或多种数据处理操作。
控制器可以是特定用途的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、集成电路(asic,applicationspecificintegratedcircuit)、数字信号处理装置(dspd,digitalsignalprocessingdevice)、可编程逻辑装置(pld,programmablelogicdevice)中的至少一种。可以理解的是,对于不同的芯片,用于实现上述控制器功能的电子器件还可以为其它,本发明实施例不作具体限定。
图1为本发明实施例中数据处理的方法的第一实施例的流程示意图,如图1所示,该方法包括:
步骤101:获取待处理数据。
步骤102:根据待处理数据的数据处理需求,确定执行数据处理操作的n个数据处理单元和n个数据处理单元在执行数据处理操作时的执行顺序;每个数据处理单元是用于执行一类数据处理操作的功能单元,n为大于1的整数。
示例性的,在获得数据处理指令后,根据待处理数据需求,确定与待处理数据相对应的n个数据处理单元,以及n个数据处理单元在执行数据处理操作时的执行顺序,进一步的,根据确定的执行顺序对这n个数据处理单元的执行顺序进行配置。
具体的,可以预先建立映射列表,该映射列表用于指示不同数据处理需求对应的n个数据处理单元的执行顺序。获取待处理数据后,根据待处理数据需求,通过查表确定n个数据处理单元的执行顺序,再根据确定的执行顺序对这n个数据处理单元的执行顺序进行配置。
在实际实施时,数据处理操作可以包括:插入、删除、修改、运算和标记。每一个数据处理单元用于执行一类数据处理操作,一类数据处理操作可以包含一种或者多种数据处理操作。可以理解的是,为了保证数据处理单元的资源利用率,当一类数据处理操作包含多种数据处理操作时,这多种数据处理操作的处理逻辑之间应具有较高的相似性。例如,加运算和减运算可以通过一个数据处理单元来执行。
示例性的,设置4个不同功能的数据处理单元包括:数据处理单元a、数据处理单元b、数据处理单元c和数据处理单元d,在不同的应用场景下要求执行的顺序不一致。例如:4个数据处理单元在执行数据处理操作时的执行顺序有24种,具体包括:由a到b到c到d,由b到c到d到a,和由c到b到d到a等等。
步骤103:根据执行顺序,对待处理数据进行数据处理。
本发明实施例中第一种可选的实施方式是,各个数据处理单元通过总线与控制器相连,控制器可以对各个数据处理单元的工作模式进行配置,以获得数据处理单元在执行数据处理操作时的执行顺序,那么,为了减少控制器的配置工作量,控制器可以仅配置实际用来进行数据处理的n个数据处理单元。
此时,上述步骤103可以包括:针对n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将第i个数据处理单元的待处理数据发送给第i个数据处理单元进行数据处理;接收来自第i个数据处理单元的处理后数据;根据执行顺序,确定第i+1个数据处理单元;将处理后数据发送给第i+1个数据处理单元进行数据处理。
示例性的,根据待处理数据的处理需求,确定执行数据处理操作的3个数据处理单元包括:a、b和d,和3个数据处理单元在执行数据处理操作时的执行顺序为:由b到d到a。根据执行顺序,对待处理数据进行数据处理的具体步骤可以包括:
步骤1:控制器将待处理数据发送给单元b;
步骤2:接收来自单元b的处理后数据;
步骤3:将单元b的处理后数据发送给单元d;
步骤4:接收来自单元d的处理后数据;
步骤5:将单元d的处理后数据发送给单元a;
步骤6:将单元a的处理后数据输出。
第二种可选的实施方式是,各个数据处理单元按照预先设置的排列顺序依次连接,任意相邻的两个数据处理单元可以相互通信。那么,为了减少总线上的信令交互,可以控制数据在数据处理单元之间进行传输,以执行数据处理操作。
此时,上述步骤103可以包括:针对n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将第i个数据处理单元的待处理数据发送给第i个数据处理单元进行数据处理;根据执行顺序,确定第i+1个数据处理单元;控制第i+1个数据处理单元对第i个数据处理单元的处理后数据进行数据处理。该实施方式中,通过控制数据在数据处理单元之间进行传输,减少了总线上的信令交互。
示例性的,将数据处理单元a、b、c、d按照由a到b到c到d的排列顺序连接,根据待处理数据的处理需求,确定执行数据处理操作的3个数据处理单元包括:a、b和c,和3个数据处理单元在执行数据处理操作时的执行顺序为:由a到b到c。根据执行顺序,对待处理数据进行数据处理的具体步骤可以包括:
步骤1:控制器将待处理数据发送给单元a;
步骤2:根据执行顺序,确定单元b为下一个执行数据处理操作的单元;
步骤3:控制单元b对单元a的处理后数据进行数据处理;
步骤4:根据执行顺序,确定单元c为下一个执行数据处理操作的单元;
步骤5:控制单元c对单元b的处理后数据进行数据处理;
步骤6:将单元c的处理后数据输出。
第三种可选的实施方式是,在第二种可选的实施方式的基础上,如果n个数据处理单元中两个执行顺序相邻数据处理单元之间存在其他的数据处理单元,通过将其他数据处理单元配置为透传状态,仍然可以控制数据在数据处理单元之间进行传输。
此时,上述步骤103可以包括:针对n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将第i个数据处理单元的待处理数据发送给第i个数据处理单元进行数据处理;根据执行顺序,确定第i+1个数据处理单元;根据执行顺序,确定第i个数据处理单元与第i+1个数据处理单元之间存在k个数据处理单元,k为大于0的整数;将k个数据处理单元中的每个数据处理单元配置为透传状态,透传状态用于指示k个数据处理单元中的每个数据处理单元透传输入的数据。该实施方式中,控制器可以根据不同的数据处理需求,控制数据在任意两个数据处理单元之间进行传输,减少了总线上的信令交互,提高了数据处理单元的执行顺序配置的灵活性。
示例性的,将数据处理单元a、b、c、d按照由a到b到c到d的排列顺序连接,根据待处理数据的处理需求,确定执行数据处理操作的3个数据处理单元包括:a、b和c,和3个数据处理单元在执行数据处理操作时的执行顺序为:由b到c到a。根据执行顺序,对待处理数据进行数据处理的具体步骤可以包括:
步骤1:控制器将待处理数据发送给单元b;
步骤2:控制单元c对单元b的处理后数据进行数据处理;
步骤3:确定单元c与下一个执行数据处理操作的单元a之间存在单元b;
步骤4:将单元b配置为透传状态;
步骤5:控制单元a对单元c的处理后数据进行数据处理;
步骤6:将单元a的处理后数据输出。
本发明实施例中,获取待处理数据;根据待处理数据的数据处理需求,确定执行数据处理操作的n个数据处理单元和n个数据处理单元在执行数据处理操作时的执行顺序;每个数据处理单元是用于执行一类数据处理操作的功能单元,n为大于1的整数;根据执行顺序,对待处理数据进行数据处理。与现有技术相比,可以通过不同的数据处理单元实现不同的数据处理操作,进而根据不同的数据处理需求配置对应的数据处理单元的执行顺序,来完成不同的数据处理流程,如此,提高了数据处理的可扩展性和可编程性。
第二实施例
基于前述实施例,在本实施例中,以4个数据处理单元进行数据处理为例,对本发明实施例所提供的数据处理方法进行进一步的说明。
假设,上述n个数据处理单元为数据处理单元a、数据处理单元b、数据处理单元c和数据处理单元d。
图2为本发明实施例中数据处理的方法的第二实施例的流程示意图,如图2所示,该方法包括:
步骤201:获取待处理数据。
步骤202:根据待处理数据的数据处理需求,确定执行数据处理操作的4个数据处理单元和4个数据处理单元在执行数据处理操作时的执行顺序。
在实际实施时,数据处理单元a、b、c和d针对不同的应用场景共有24种工作模式(即24种执行顺序),具体的工作模式包括:工作模式1下数据流依次经过a、b、c、d,工作模式2下数据流依次经过b、c、d、a,工作模式3下数据流依次经过c、b、d、a等等。根据数据处理需求从这24种工作模式中,选取一种工作模式用于对待处理数据进行数据处理。
步骤203:根据确定的执行顺序配置4个数据处理单元的执行顺序。
步骤204:对待处理数据进行数据处理。
示例性的,图3为本发明实施例中数据处理单元的第一工作模式的结构示意图,如图3所示,数据处理单元a301、数据处理单元b302、数据处理单元c303、数据处理单元d304和输出单元305通过总线与控制器306相连,控制器用于配置数据处理单元的执行顺序。可选的,每一个数据处理单元按照预先设置的排列顺序(即由a到b到c到d)连接,每一个数据处理单元还可以包括选择子单元和处理子单元,其中,选择子单元用于控制各自的数据处理单元执行数据处理操作,处理子单元用于执行本单元的数据处理操作。
例如,根据数据处理的第一工作模式:数据流依次经过单元a、d、b、c,控制器配置数据处理单元的执行顺序,数据流根据配置的执行顺序,通过总线依次经过单元a、d、b、c,由单元c输出数据处理结果,即控制器先将待处理数据1通过总线发送给单元a,再接收单元a处理后的数据2,并将单元a处理后的数据2发送给单元d,依次类推直到接收单元c处理后的数据5,可以通过输出单元305输出最终的数据处理结果。在实际实施时,控制器可以由位于设备中的cpu、mpu等实现。
需要说明的是,本发明实施例中所有的数据处理单元a301还可以包括选择子单元a301a和处理子单元a301b,数据处理单元b302还可以包括选择子单元b302a和处理子单元b302b,数据处理单元c303还可以包括选择子单元c303a和处理子单元c303b,数据处理单元d304还可以包括选择子单元d304a和处理子单元d304b。
图4为本发明实施例中数据处理单元的第二工作模式的结构示意图,图中实线可以用来表示数据信号传输通路,虚线均可以用来表示数据信号传输断路。如图4所示,数据处理单元a301、数据处理单元b302、数据处理单元c303、数据处理单元d304和输出单元305通过总线与控制器306相连,控制器用于配置数据处理单元的执行顺序。可选的,每一个数据处理单元按照预先设置的排列顺序(即由a到b到c到d)连接,每一个数据处理单元还可以包括选择子单元和处理子单元,其中,选择子单元用于控制各自的数据处理单元执行数据处理操作,处理子单元用于执行本单元的数据处理操作。
例如,根据数据处理的第二工作模式:数据流依次经过单元a、d,控制器配置数据处理单元的执行顺序,数据流根据配置的执行顺序,通过总线依次经过数据处理单元a、d,即控制器先将待处理数据1通过总线发送给单元a,再接收单元a处理后的数据2,并将单元a处理后的数据2发送给单元d,接收单元d处理后的数据3,可以通过输出单元305输出最终的数据处理结果。可选的,控制器将单元b和单元c配置为透传状态,控制器先将待处理数据1发送给单元a,单元a将处理后的数据2经过单元b和单元c透传后直接发送至单元d,单元d将处理后的数据3通过输出单元305输出。
图5为本发明实施例中执行数据处理操作的流程示意图,如图5所示,本发明实施例中执行数据处理操作的具体步骤可以包括:
步骤501:获取待处理数据;
步骤502:根据输入的待处理数据,配置数据处理单元;
在实际实施时,可以预先建立映射列表,该映射列表用于指示不同的数据处理需求对应的每一个数据处理单元中需要执行的数据处理操作。根据输入的待处理数据通过查表获得n个数据处理单元中每一个数据处理单元需要执行的数据处理操作。
进一步的,根据获得的每一个数据处理单元需要执行的数据处理操作,配置对应的数据处理单元。可以理解的是,当一个数据处理单元可以实现多种数据处理操作时,根据数据处理需求确定数据处理单元实际执行的数据处理操作。
步骤503:利用配置完成的数据处理单元执行数据处理操作;
步骤504:输出处理后数据。
第三实施例
基于前述实施例,在本实施例中,以m个数据处理主单元执行数据处理操作为例,对本发明实施例提供的数据处理方法进行进一步的说明。其中,m为大于1的整数。
在实际实施时,为了方便对数据处理单元的管理和配置,可以将多个数据处理单元预先划分至m个数据处理主单元中,通过配置数据处理主单元的执行顺序以及每一个数据处理主单元内部的数据处理单元的执行顺序,来进行数据处理。
假设,上述m个数据处理主单元为3个数据处理主单元,本实施例中通过配置3个数据处理主单元的执行顺序来实现不同的数据处理操作,3个数据处理主单元包括:数据处理主单元x、数据处理主单元y、数据处理主单元z,每一个数据处理主单元中还包含数据处理单元a、数据处理单元b、数据处理单元c及数据处理单元d中的一种或者多种的组合。例如,数据处理主单元x包含的数据处理单元可以为{a,a,a,a,b,b,b,b,c,c,c,c,d,d,d,d};主单元y包含的数据处理单元可以为{a,a,a,c,c,c};主单元z包含的数据处理单元可以为{a,a,c,c,d,d,d}。
需要说明的是,数据处理主单元中的数据处理单元a的功能一致,根据资源占用情况以及可编程原理,可以将不同的数据处理操作类型合理的划分至不同数据处理单元,通过对数据处理单元进行软件配置,实现可编程要求,通过预留相同的数据处理单元可以提高数据处理的可扩展性。数据处理单元b的功能也一致,数据处理单元c的功能也一致,数据处理单元d的功能也一致。
图6为本发明实施例中数据处理的方法的第三实施例的流程示意图,如图6所示,该方法包括:
步骤601:获取待处理数据。
步骤602:根据待处理数据的数据处理需求,确定执行数据处理操作的数据处理主单元、数据处理主单元在执行数据处理操作时的执行顺序和每一个数据处理主单元中数据处理单元的执行顺序。
步骤603:根据确定的数据处理主单元的执行顺序配置所确定的数据处理主单元。
在实际实施时,多个数据处理主单元中可以包含相同的数据处理单元,相同的数据处理单元用于执行相同的数据处理操作;相应地,在多个数据处理主单元中存在至少一个包含相同的数据处理单元的数据处理主单元,和/或不同的数据处理主单元中包含相同的数据处理单元。
示例性的,数据处理主单元x、y和z,在不同的应用场景下要求执行的顺序不一致,3个数据处理主单元可实现6种工作模式(即6种执行顺序),具体可以包括以下:
工作模式1下数据流依次经过x、y、z;
工作模式2下数据流依次经过x、z、y;
工作模式3下数据流依次经过y、x、z;
工作模式4下数据流依次经过y、z、x;
工作模式5下数据流依次经过z、x、y;
工作模式6下数据流依次经过z、y、x。
图7为本发明实施例中数据处理的第三工作模式的结构示意图,如图7所示,数据处理主单元x701、数据处理主单元y702、数据处理主单元z703通过总线与控制器306相连,控制器用于配置数据处理单元的执行顺序。可选的,每一个数据处理主单元还可以按照预先设置的排列顺序(即由x到y到z)连接,每一个数据处理主单元还可以包括选择单元和处理单元(即数据处理主单元x701包括选择单元x701a和处理单元x701b,数据处理主单元y702包括选择单元y702a和处理单元y702b,数据处理主单元z703包括选择单元z703a和处理单元z703b),其中,选择单元用于控制各自的数据处理主单元执行数据处理操作,处理单元用于执行本主单元的数据处理操作。例如,根据数据处理的工作模式:数据流依次经过主单元x、y、z,控制器配置数据处理主单元的执行顺序,数据流根据配置的执行顺序,通过总线依次经过主单元x、y、z,由主单元z输出数据处理结果。
步骤604:根据确定的每一个数据处理主单元中数据处理单元的执行顺序,配置每一个数据处理主单元。
示例性的,图8为本发明实施例中数据处理主单元x的组成结构示意图,如图8所示,数据处理主单元x中的每一个数据处理单元通过总线与控制器306相连,控制器用于配置数据处理单元的执行顺序。可选的,每一个数据处理单元还可以依次相连,每一个数据处理单元还可以包括选择子单元和处理子单元,其中,选择子单元用于控制各自的数据处理单元执行数据处理操作,处理子单元用于执行本单元的数据处理操作。本发明实施例中,数据处理主单元x中包括数据处理单元a301、重复单元a801、数据处理单元b302、重复单元b802、数据处理单元c303、重复单元c803、数据处理单元d304和重复单元d804。其中,重复单元a801中包括3个重复的数据处理单元a301,重复单元b802中包括3个重复的数据处理单元b302,重复单元c803中包括3个重复的数据处理单元c303,重复单元d801中包括3个重复的数据处理单元d304。在配置完数据处理主单元的工作模式后,通过软件进一步的配置主单元x内部的数据处理单元的执行顺序。
图9为本发明实施例中数据处理主单元y的组成结构示意图,如图9所示,数据处理主单元y中的每一个数据处理单元通过总线与控制器306相连,控制器用于配置数据处理单元的执行顺序。每一个数据处理单元还可以依次相连,每一个数据处理单元还可以包括选择子单元和处理子单元,其中,选择子单元用于控制各自的数据处理单元执行数据处理操作,处理子单元用于执行本单元的数据处理操作。本发明实施例中,数据处理主单元y中包括数据处理单元a301、重复单元a901、数据处理单元c303、重复单元c902。其中,重复单元a901中包括2个重复的数据处理单元a301,重复单元c902中包括2个重复的数据处理单元c303。在配置完数据处理主单元的工作模式后,通过软件进一步的配置主单元y内部的数据处理单元的执行顺序。
图10为本发明实施例中数据处理主单元z的组成结构示意图,如图10所示,数据处理主单元z中的每一个数据处理单元通过总线与控制器306相连,控制器用于配置数据处理单元的执行顺序。每一个数据处理单元还可以依次相连,每一个数据处理单元还可以包括选择子单元和处理子单元,其中,选择子单元用于控制各自的数据处理单元执行数据处理操作,处理子单元用于执行本单元的数据处理操作。本发明实施例中,数据处理主单元z中包括数据处理单元a301、重复单元a1001、数据处理单元c303、重复单元c1002、数据处理单元d304和重复单元d1003。其中,重复单元a1001中包括1个数据处理单元a301,重复单元c1002中包括1个数据处理单元c303,重复单元d1003中包括2个重复的数据处理单元d304。在配置完数据处理主单元的工作模式后,通过软件进一步的配置主单元z内部的数据处理单元的执行顺序。
步骤605:对待处理数据进行数据处理。
本发明实施例中,可以根据不同的数据处理需求,配置数据处理主单元的执行顺序,以及每一个数据处理主单元内部的数据处理单元的执行顺序,来执行不同的数据处理操作,实现数据处理的可编程性;通过在数据处理主单元中的重复单元中预留的部分数据处理单元来实现数据处理的可扩展性,支持数据处理的升级操作。
第四实施例
基于同一发明构思,本发明实施例还提供了一种数据处理设备。图11为本发明实施例中数据处理设备的硬件结构示意图,如图11所示,该设备11包括:处理器1101和n个数据处理单元1102;其中,处理器1101用于执行以下步骤:获取待处理数据;根据待处理数据的数据处理需求,确定执行数据处理操作的n个数据处理单元1102,并确定n个数据处理单元1102在执行数据处理操作时的执行顺序;每个数据处理单元是用于执行一类数据处理操作的功能单元,n为大于1的整数;根据n个数据处理单元在执行数据处理操作时的执行顺序,对待处理数据进行数据处理。
需要说明的是,上述处理器与前述一个或者多个方法实施例中的控制器一致。
在实际实施时,处理器具体用于执行以下步骤:针对n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将第i个数据处理单元的待处理数据发送给第i个数据处理单元进行数据处理;接收来自第i个数据处理单元的处理后数据;根据执行顺序,确定第i+1个数据处理单元;将处理后数据发送给第i+1个数据处理单元进行数据处理。
在实际实施时,处理器具体用于执行以下步骤:针对n个数据处理单元的第i个数据处理单元,当i=1,2,3,…,n-1时,执行以下步骤:将第i个数据处理单元的待处理数据发送给第i个数据处理单元进行数据处理;根据执行顺序,确定第i+1个数据处理单元;控制第i+1个数据处理单元对第i个数据处理单元的处理后数据进行数据处理。
在实际实施时,处理器在执行控制第i+1个数据处理单元对第i个数据处理单元的处理后数据进行数据处理的步骤之前,还用于执行以下步骤:根据执行顺序,确定第i个数据处理单元与第i+1个数据处理单元之间存在k个数据处理单元,k为大于0的整数;将k个数据处理单元中的每个数据处理单元配置为透传状态,透传状态用于指示k个数据处理单元中的每个数据处理单元透传输入的数据。
在实际应用中,上述处理器可以为特定用途集成电路asic、dspd、pld、fpga、dsp、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
第五实施例
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由数据处理设备的处理器执行,以完成前述一个或者更多个实施例中的方法步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。