CN103761060B - 一种数据处理方法及服务器 - Google Patents
一种数据处理方法及服务器 Download PDFInfo
- Publication number
- CN103761060B CN103761060B CN201410041004.4A CN201410041004A CN103761060B CN 103761060 B CN103761060 B CN 103761060B CN 201410041004 A CN201410041004 A CN 201410041004A CN 103761060 B CN103761060 B CN 103761060B
- Authority
- CN
- China
- Prior art keywords
- information
- control information
- target data
- description information
- description
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种数据处理方法及服务器,包括:获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息;基于所述控制信息,按照所述处理方式处理所述目标数据。采用本发明,可实现根据目标数据的缓存描述符BD中的第一位置信息和描述信息获取到目标数据和控制信息,并基于控制信息对目标数据进行处理,处理方法简单,效率高。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种数据处理方法及服务器。
背景技术
随着互联网技术的高速发展,对于服务器的功能要求也越来越高,尤其是服务器的数据处理功能。通常在服务器中,需要处理的目标数据和用于描述对目标数据处理方式的控制信息都存储在CPU的内部或者外部缓存中,且通常目标数据和控制信息存储在不同的存储数据块中,数据的处理模块在CPU的***电路中,例如协处理器芯片中。当需要对目标数据进行处理时,现有的目标数据处理方法是:获取目标数据的缓存位置并将该缓存位置发送至CPU;在CPU缓存中,由CPU根据目标数据的缓存位置获取到目标数据,再获取与目标数据对应的控制信息;CPU将控制信息复制到一个新的缓存块中作为头部,也将目标数据复制到该新的缓存块中,且放在控制信息之后;最后将该新的缓存块中的控制信息和目标数据一起发送到协处理器芯片中进行处理。现有的数据处理方法是将控制信息和目标数据重新组合后发送给协处理器,所以在发送之前,需要软件在CPU缓存中将控制信息和目标数据进行复制搬移,这样因为软件对于数据的复制搬移进行了相当多的操作,效率极低。
发明内容
本发明实施例提供一种数据处理方法及服务器,可实现根据目标数据的缓存描述符BD中的第一位置信息和描述信息获取到目标数据和控制信息,并基于控制信息对目标数据进行处理,处理方法简单,效率高。
本发明实施例第一方面提供了一种数据处理方法,可包括:
获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息;
基于所述控制信息,按照所述处理方式处理所述目标数据。
基于第一方面,在第一种可行的实施方式中,所述根据所述描述信息获取所述控制信息,包括:
若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
基于第一方面第一种可行的实施方式,在第二种可行的实施方式中,所述目标数据的缓存描述符BD还包括描述信息类型标识,所述描述信息类型标识用于标识所述描述信息的类型;所述方法还包括:
从所述BD中获取所述描述信息类型标识,并根据所述描述信息类型标识确定所述描述信息的类型,当所述描述信息的类型为第一类型时,则确定所述描述信息为所述控制信息;
当所述描述信息的类型为第二类型时,则确定所述描述信息为所述第二位置信息。
基于第一方面第一种可行的实施方式或第一方面第二种可行的实施方式,在第三种可行的实施方式中,所述第二位置信息包括所述控制信息的缓存起始地址和所述控制信息长度,所述根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息,包括:
在所述缓存中查找到所述控制信息的缓存起始地址对应的缓存单元;
在所述缓存单元中,从所述控制信息的缓存起始地址开始读取所述控制信息长度的存储数据,并将所读取的所述存储数据作为所述控制信息。
基于第一方面或第一方面第一种可行的实施方式或第一方面第二种可行的实施方式,在第四种可行的实施方式中,所述第一位置信息包括所述目标数据的缓存起始地址和所述目标数据长度,所述根据所述第一位置信息在所述缓存位置获取所述目标数据,包括:
在所述缓存中,查找到所述目标数据的缓存起始地址对应的缓存单元;
在所述缓存单元中,从所述目标数据的缓存起始地址开始读取所述目标数据长度的存储数据,并将所读取的所述存储数据作为所述目标数据。
本发明第二方面提供了一种服务器,可包括:
第一获取模块,用于获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
第二获取模块,用于根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息;
处理模块,用于基于所述控制信息,按照所述处理方式处理所述目标数据。
基于第二方面,在第一种可行的实施方式中,所述第二获取模块包括:
第一获取单元,用于根据所述第一位置信息在所述缓存位置获取所述目标数据;
确定单元,用于若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
第二获取单元,用于若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
基于第二方面第一种可行的实施方式,在第二种可行的实施方式中,所述目标数据的缓存描述符BD还包括描述信息类型标识,所述描述信息类型标识用于标识所述描述信息的类型;所述服务器还包括:
获取确定模块,用于从所述BD中获取所述描述信息类型标识,并根据所述描述信息类型标识确定所述描述信息的类型,当所述描述信息的类型为第一类型时,则确定所述描述信息为所述控制信息;
当所述描述信息的类型为第二类型时,则确定所述描述信息为所述第二位置信息。
基于第二方面第一种可行的实施方式或第二方面第二种可行的实施方式,在第三种可行的实施方式中,所述第二位置信息包括所述控制信息的缓存起始地址和所述控制信息长度,所述第二获取单元包括:
第一查找子单元,用于若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,在所述缓存中查找到所述控制信息的缓存起始地址对应的缓存单元;
第一读取子单元,用于在所述缓存单元中,从所述控制信息的缓存起始地址开始读取所述控制信息长度的存储数据,并将所读取的所述存储数据作为所述控制信息。
基于第二方面或第二方面第一种可行的实施方式或第二方面第二种可行的实施方式,在第四种可行的实施方式中,所述第一位置信息包括所述目标数据的缓存起始地址和所述目标数据长度,所述第一获取单元包括:
第二查找子单元,用于在所述缓存中,查找到所述目标数据的缓存起始地址对应的缓存单元;
第二读取子单元,用于在所述缓存单元中,从所述目标数据的缓存起始地址开始读取所述目标数据长度的存储数据,并将所读取的所述存储数据作为所述目标数据。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的流程示意图;
图2是本发明实施例提供的另一种数据处理方法的流程示意图;
图3是本发明实施例提供的一种获取控制信息的流程示意图;
图4是本发明实施例提供的又一种数据处理方法的流程示意图;
图5是本发明实施例提供的一种服务器的结构示意图;
图6是本发明实施例提供的另一种服务器的结构示意图;
图7是本发明实施例提供的一种第二获取模块的结构示意图;
图8是本发明实施例提供的又一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所述的数据处理方法可以应用在Intel X86平台,在Intel X86平台上面,数据处理可以是在Intel X86平台的CPU进行处理,也可以是在CPU的***协处理器芯片中进行处理,当是在CPU的***协处理器芯片中进行处理时,则CPU与协处理器芯片之间的通信是基于报文发送接口(PCI Express,PCIe)来完成。目标数据的缓存位置可以是CPU缓存。
请参照图1,是本发明实施例提供的一种数据处理方法的流程示意图;如图1所述,本实施例所述的一种数据处理方法包括步骤:
S100,获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
具体实施例中,目标数据可以是以报文的形式存在,并且存储在CPU缓存中。具体的,在CPU缓存中对目标数据进行存储的方式为:CPU上运行的软件一般需要为目标数据分配一段连续地址的内存来作为目标数据的处理CPU缓存,所有需要处理的目标数据都存储在CPU缓存中,例如CPU软件分配一块256M Bytes的内存作为目标数据CPU缓存;另外,为了管理上的方便,还会采用一个固定长度的缓存单元作为基本单位(例如:2K Bytes),把这段CPU缓存切分成大小相同的多个缓存单元(例如:256MB÷2KB=128K个缓存单元)。一个报文,即一个目标数据一般都是占据一个缓存单元,其中当一个大于基本缓存单元的目标数据需要占据多个缓存单元的时候,需要将其切分成多个报文,并放入到多个缓存单元中。与此同时,软件还需要以一种环形缓存(Ring Buffer)的方式,把多个报文即多个目标数据管理起来;这种环形缓存通常是一块连续地址的内存空间,且该内存空间包括多个单元,其中每个单元的长度相等,一个基本单元称做缓存描述符(Buffer Descriptor,BD),例如是一个单元是8Bytes,则BD Size=8B。一个BD中的内容是存放着第一位置信息和描述信息。需要说明的是,该第一位置信息用于表示目标数据在CPU缓存中的缓存位置,例如可以标识具体是哪一个缓存单元,也可以是某一个缓存单元的起始地址和目标数据的长度;描述信息可以是用于描述控制信息,例如可以描述控制信息的内容,也可以是描述控制信息的存储位置;控制信息是具体描述对目标数据的处理方式,例如可以描述对目标数据进行加速处理,或者描述对目标数据进行运算处理等等。
进一步的,CPU在管理这个Ring Buffer的时候需要使用到两个地址指针,一个是Header Pointer(用于指向下一个可以读出来使用的BD的地址),一个是Tail Pointer(用于指向下一个可以用来写入新的BD内容的地址)。在初始化的时候,这两个指针都是指向了Ring Buffer的第一个单元的地址处,即Head Pointer=Tail Pointer=Ring BufferBase Address+0。
当有一个目标数据需要处理时,先把这个目标数据放入到一个缓存单元中,再把这个缓存单元的起始地址值与目标数据的实际长度值写入到Tail Pointer所指向的BD中,最后Tail Pointer的值将增加一个BD Size(即new Tail Pointer=old Tail Pointer+BD Size)。软件可以不断地重复此过程,把多个需要处理的目标数据放入到多个缓存单元中,同时把缓存单元的起始地址也放入到Ring Buffer对应的BD中。需要说明的是,当TailPointer值达到了Ring Buffer的最后一个单元后,将会环回到其第一个单元,从而形成一个“环”。另外,Tail Pointer不能超过Head Pointer,这样可以避免数据的覆盖。
对数据进行处理的过程可以是部署在与CPU对接的协处理器芯片中。在该协处理器芯片中也有两个寄存器,一个对应着Ring Buffer的Head Pointer,另一个对应着RingBuffer的Tail Pointer。初始化的时候,这两个寄存器的值与CPU中的两个指针的值相同,也都是指向了Ring Buffer的第一个单元的地址处,即Head Pointer=Tail Pointer=Ring Buffer Base Address+0。一旦当CPU把一些目标数据放入到缓存单元后,并更新了CPU中的Tail Pointer后,软件可以把这个更新后的Tail Pointer值也写入到协处理器芯片的对应寄存器中;或者是让协处理器定时读取软件中的Tail Pointer值来更新其自己的Tail Pointer寄存器。协处理器一旦检测到Tail Pointer寄存器中的值不等于HeadPointer寄存器中的值,就会知道CPU中有目标数据需要进行处理,目标数据是以报文的形式存在;其中Head Pointer寄存器中就是指向了下一个可被处理的BD的地址。
当检测到CPU中有目标数据需要进行处理时,则首先获取目标数据的缓存描述符,具体的获取方式可以是,根据协处理器芯片中Head Pointer所存储的BD的地址,查找到BD,并从BD中读取相应的第一位置信息和描述信息。
S101,根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息。
具体实施例中,第一位置信息用于表示目标数据在CPU缓存中的缓存位置,可以是目标数据对应的缓存单元的起始地址和目标数据的长度,根据缓存单元的起始地址和目标数据的长度在相应的缓存单元中获取到目标数据;描述信息可以是描述控制信息的相关信息,例如控制信息的内容或者控制信息所存储的地址,所以可以根据描述信息获取到相应的控制信息,控制信息用于描述对目标数据的处理方式。
进一步的,一旦一个目标数据和对应的控制信息被全部取走,协处理器芯片就会把其Head Pointer寄存器的值移动到下一个BD所在的地址,即new Head Pointer=oldHead Pointer+BD Size。注意:当Head Pointer值达到了Ring Buffer的最后一个单元后,将会环回到其第一个单元,从而形成一个“环”。另外,Head Pointer不能超过TailPointer,这样可以避免取到无效的BD数据。当然,协处理器芯片也需要把Head Pointer值写回到CPU中,以让CPU知道协处理器芯片已经读出了哪些目标数据,这样CPU也就可以重新使用对应的BD与缓存。
S102,基于所述控制信息,按照所述处理方式处理所述目标数据。
具体实施例中,根据所获得的目标数据和控制信息,对目标数据进行相应的处理,具体的,从控制信息中解析出对目标数据的处理方式,再按照所解析出的处理方式对目标数据进行处理。需要说明的是,对目标数据的处理方式可以是加速处理,也可以是运算处理等等。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
请参照图2,是本发明实施例提供的另一种数据处理方法的流程示意图;如图2所述,本实施例所述的一种数据处理方法包括步骤:
S200,获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
具体实施例中,本发明实施例步骤S200,请参照图1所示的实施例步骤S100,在此不进行赘述。
S201,根据所述第一位置信息在所述缓存位置获取所述目标数据;
具体实施例中,目标数据可以是以报文的形式存在,并且存储在CPU缓存中,具体的,在CPU中对目标数据进行存储的方式为,CPU一般需要为目标数据分配一段连续地址的缓存来作为目标数据的处理CPU缓存,所有需要处理的目标数据都存储在CPU缓存中,例如CPU软件分配一块256M Bytes的内存作为目标数据缓存;另外,为了管理上的方便,还会采用一个固定长度的缓存单元作为基本单位(例如:2K Bytes),把这段CPU缓存切分成大小相同的多个缓存单元(例如:256MB÷2KB=128K个缓存单元)。一个报文,即一个目标数据一般都是占据一个缓存单元,第一位置信息可以是目标数据所存储的缓存单元的起始地址和目标数据长度,所以根据第一位置信息可以在CPU缓存中获取到相应的目标数据。
S202,从所述BD中获取所述描述信息类型标识,并根据所述描述信息类型标识确定所述描述信息的类型,当所述描述信息的类型为第一类型时,则确定所述描述信息为所述控制信息;
当所述描述信息的类型为第二类型时,则确定所述描述信息为所述第二位置信息。
具体实施例中,缓存描述符BD包括用于表示目标数据缓存位置的第一位置信息、描述信息类型标识以及描述信息;需要说明的是,描述信息类型标识用于确定描述信息的类型,描述信息的类型可以是第一类型和第二类型,当描述信息的类型是第一类型时,则确定描述信息即为控制信息,当描述信息的类型为第二类型时,则确定描述信息为第二位置信息;第二位置信息表示控制信息的缓存位置,所以第二位置信息可以是控制信息的缓存地址,根据描述信息可以获取到控制信息。
在具体应用中,在缓存描述符BD中,描述信息类型标识可以用DT进行表示,描述信息可以用DC进行表示,DT和DC长度固定,例如DT为2bits,DC长度为16Bytes,具体实施方式中,可以通过以下方式来设置DC和DT:
如果没有描述信息,则把DT设置为2’b00,DC也设置为全零;如果有描述信息,但是其长度不超过16Bytes,则把DT设置为2’b01,把DT设置为2’b01即表明描述信息的类型是第一类型,描述信息即是控制信息,所以DC中存放的即是控制信息;如果有描述信息,其长度超过16Bytes,则把DT设置为2’b10,把DT设置为2’b10,即表明描述信息的类型是第二类型,描述信息是表示控制信息缓存位置的第二位置信息,在DC中存放8Bytes的控制信息长度+8Bytes的控制信息缓存起始地址。
S203,若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
具体实施例中,若描述信息为控制信息,则直接从BD中读取描述信息的内容,并将所读取的描述信息确定为控制信息。
S204,基于所述控制信息,按照所述处理方式处理所述目标数据。
具体实施例中,本发明实施例步骤S204,请参照图1所示的实施例步骤S102,在此不进行赘述。
S205,若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
具体实施例中,若描述信息为表示控制信息缓存位置的第二位置信息时,则需要根据第二位置信息在控制信息的缓存位置中获取控制信息。需要说明的是,控制信息的缓存位置可以是CPU缓存中,且控制信息在CPU缓存中的存储方式可以是存储在CPU缓存中的一个缓存单元中,所以第二位置信息可以是存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度。则可以根据存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度获取到控制信息。
S206,基于所述控制信息,按照所述处理方式处理所述目标数据。
具体实施例中,本发明实施例步骤S206,请参照图1所示的实施例步骤S102,在此不进行赘述。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
请参照图3,是本发明实施例提供的一种获取控制信息的流程示意图;如图3所述,本实施例所述的一种获取控制信息方法包括步骤:
S300,在所述缓存中查找到所述控制信息的缓存起始地址对应的缓存单元;
具体实施例中,控制信息的缓存位置可以是CPU缓存,且控制信息在CPU缓存中的存储方式可以是存储在CPU缓存中的一个缓存单元中,第二位置信息可以是存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度,在CPU缓存中,查找到缓存起始地址对应的缓存单元,一个缓存单元对应一个缓存起始地址。
S301,在所述缓存单元中,从所述控制信息的缓存起始地址开始读取所述控制信息长度的存储数据,并将所读取的所述存储数据作为所述控制信息。
具体实施例中,在缓存单元中,从所查找到的缓存起始地址开始读取存储数据,且读取的存储数据的长度为控制信息的长度,所读取出的存储数据即是控制信息。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
请参照图4,是本发明实施例提供的又一种数据处理方法的流程示意图;如图4所述,本实施例所述的一种数据处理方法包括步骤:
S400,获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
具体实施例中,本发明实施例步骤S400,请参照图1所示的实施例步骤S100,在此不进行赘述。
S401,在所述缓存中,查找到所述目标数据的缓存起始地址对应的缓存单元;
具体实施例中,目标数据的存储位置为CPU缓存,且在CPU缓存中,目标数据存储在CPU缓存中的一个缓存单元中,第一位置信息包括目标数据在CPU缓存中对应的缓存单元的缓存起始地址和目标数据的长度,所以在CPU缓存中,首先需要查找到缓存起始地址对应的缓存单元。
S402,在所述缓存单元中,从所述目标数据的缓存起始地址开始读取所述目标数据长度的存储数据,并将所读取的所述存储数据作为所述目标数据。
具体实施例中,在缓存单元中,从目标数据的缓存起始地址开始读取存储数据,且读取的存储数据的长度为目标数据的长度,并将所读取的存储数据作为目标数据。
S403,根据所述描述信息获取所述控制信息;
具体实施例中,描述信息可以是描述控制信息的相关信息,例如控制信息的内容或者控制信息所存储的地址,所以可以根据描述信息获取到相应的控制信息,控制信息用于描述对目标数据的处理方式,具体的处理方式可以是对目标数据进行加速处理或者运算处理。
S404,基于所述控制信息,按照所述处理方式处理所述目标数据。
具体实施例中,本发明实施例步骤S404,请参照图1所示的实施例步骤S102,在此不进行赘述。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
下面阐述本发明实施例提供的一种服务器的具体实现。
请参照图5,为本发明实施例提供的一种服务器的结构示意图。如图5所示,本实施例所述的一种服务器包括:第一获取模块100、第二获取模块101和处理模块102。
第一获取模块100,用于获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
具体实施例中,目标数据可以是以报文的形式存在,并且存储在CPU缓存中,具体的,在CPU缓存中对目标数据进行存储的方式为:CPU上运行的软件一般需要为目标数据分配一段连续地址的内存来作为目标数据的处理CPU缓存,所有需要处理的目标数据都存储在CPU缓存中,例如CPU软件分配一块256M Bytes的内存作为目标数据CPU缓存,另外,为了管理上的方便,还会采用一个固定长度的缓存单元作为基本单位(例如:2K Bytes),把这段CPU缓存切分成大小相同的多个缓存单元(例如:256MB÷2KB=128K个缓存单元)。一个报文,即一个目标数据一般都是占据一个缓存单元,其中当一个大于基本缓存单元的目标数据需要占据多个缓存单元的时候,需要将其切分成多个报文,并放入到多个缓存单元中。与此同时,软件还需要以一种环形缓存(Ring Buffer)的方式,把多个报文即多个目标数据管理起来,这种环形缓存通常是一块连续地址的内存空间,且该内存空间包括多个单元,其中每个单元的长度相等,一个基本单元称做缓存描述符(Buffer Descriptor,BD),例如是一个单元是8Bytes,则BD Size=8B。一个BD中的内容是存放着第一位置信息和描述信息。需要说明的是,该第一位置信息用于表示目标数据在CPU缓存中的缓存位置,例如可以标识具体是哪一个缓存单元,也可以是某一个缓存单元的起始地址和目标数据的长度;描述信息可以是用于描述控制信息,例如可以描述控制信息的内容,也可以是描述控制信息的存储位置;控制信息是具体描述对目标数据的处理方式,例如可以描述对目标数据进行加速处理,或者描述对目标数据进行运算处理等等。
进一步的,CPU在管理这个Ring Buffer的时候需要使用到两个地址指针,一个是Header Pointer(用于指向下一个可以读出来使用的BD的地址),一个是Tail Pointer(用于指向下一个可以用来写入新的BD内容的地址)。在初始化的时候,这两个指针都是指向了Ring Buffer的第一个单元的地址处,即Head Pointer=Tail Pointer=Ring BufferBase Address+0.
当有一个目标数据需要处理时,先把这个目标数据放入到一个缓存单元中,再把这个缓存单元的起始地址值与目标数据的实际长度值写入到Tail Pointer所指向的BD中,最后Tail Pointer的值将增加一个BD Size(即new Tail Pointer=old Tail Pointer+BD Size)。软件可以不断地重复此过程,把多个需要处理的目标数据放入到多个缓存单元中,同时把缓存单元的起始地址也放入到Ring Buffer对应的BD中。需要说明的是,当TailPointer值达到了Ring Buffer的最后一个单元后,将会环回到其第一个单元,从而形成一个“环”。另外,Tail Pointer不能超过Head Pointer,这样可以避免数据的覆盖。
在对数据进行处理的过程可以是在与CPU对接的协处理器芯片中,在该协处理器芯片中也有两个寄存器,一个对应着Ring Buffer的Head Pointer,另一个对应着RingBuffer的Tail Pointer。初始化的时候,这两个寄存器的值与CPU中的两个指针的值相同,也都是指向了Ring Buffer的第一个单元的地址处,即Head Pointer=Tail Pointer=Ring Buffer Base Address+0。一旦当CPU把一些目标数据放入到缓存单元后,并更新了CPU中的Tail Pointer后,软件可以把这个更新后的Tail Pointer值也写入到协处理器芯片的对应寄存器中。;或者是让协处理器定时读取软件中的Tail Pointer值来更新其自己的Tail Pointer寄存器。协处理器一旦检测到Tail Pointer寄存器中的值不等于HeadPointer寄存器中的值,就会知道CPU中有目标数据需要进行处理,目标数据是以报文的形式存在;;其中Head Pointer寄存器中就是指向了下一个可被处理的BD的地址。
当检测到CPU中有目标数据需要进行处理时,则第一获取模块100首先获取目标数据的缓存描述符BD,第一获取模块100具体的获取方式可以是,根据协处理器芯片中HeadPointer所存储的BD的地址,查找到BD,并从BD中读取相应的第一位置信息和描述信息。
第二获取模块101,用于根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息;
具体实施例中,第一位置信息用于表示目标数据在CPU缓存中的缓存位置,可以是目标数据对应的缓存单元的起始地址和目标数据的长度,第二获取模块101根据缓存单元的起始地址和目标数据的长度在相应的缓存单元中获取到目标数据,描述信息可以是描述控制信息的相关信息,例如控制信息的内容或者控制信息所存储的地址,所以第二获取模块101可以根据描述信息获取到相应的控制信息,控制信息用于描述对目标数据的处理方式。
进一步的,一旦一个目标数据和对应的控制信息被全部取走,协处理器芯片就会把其Head Pointer寄存器的值移动到下一个BD所在的地址,即new Head Pointer=oldHead Pointer+BD Size。注意:当Head Pointer值达到了Ring Buffer的最后一个单元后,将会环回到其第一个单元,从而形成一个“环”。另外,Head Pointer不能超过TailPointer,这样可以避免取到无效的BD数据。当然,协处理器芯片也需要把Head Pointer值写回到CPU中,以让CPU知道协处理器芯片已经读出了哪些目标数据,这样CPU也就可以重新使用对应的BD与缓存。
处理模块102,用于基于所述控制信息,按照所述处理方式处理所述目标数据。
具体实施例中,处理模块102根据所获得的目标数据和控制信息,对目标数据进行相应的处理,具体的,处理模块102从控制信息中解析出对目标数据的处理方式,再按照所解析出的处理方式对目标数据进行处理。需要说明的是,对目标数据的处理方式可以是加速处理,也可以是运算处理等等。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
请参照图6,为本发明实施例提供的另一种服务器的结构示意图。如图6所示,本实施例所述的另一种服务器包括:第一获取模块100、第二获取模块101、处理模块102和获取确定模块103;其中,第一获取模块100、第二获取模块101和处理模块102请参照图5的描述,在此不再赘述。
获取确定模块103,用于从所述BD中获取所述描述信息类型标识,并根据所述描述信息类型标识确定所述描述信息的类型,当所述描述信息的类型为第一类型时,则确定所述描述信息为所述控制信息;
当所述描述信息的类型为第二类型时,则确定所述描述信息为所述第二位置信息。
具体实施例中,缓存描述符BD包括用于表示目标数据缓存位置的第一位置信息、描述信息类型标识以及描述信息,需要说明的是,描述信息类型标识用于确定描述信息的类型,描述信息的类型可以是第一类型和第二类型,当描述信息的类型是第一类型时,则获取确定模块103确定描述信息即为控制信息,当描述信息的类型为第二类型时,则获取确定模块103确定描述信息为第二位置信息,第二位置信息表示控制信息的缓存位置,所以第二位置信息可以是控制信息的缓存地址,根据描述信息可以获取到控制信息。
在具体应用中,在缓存描述符BD中,描述信息类型标识可以用DT进行表示,描述信息可以用DC进行表示,DT和DC长度固定,例如DT为2bits,DC长度为16Bytes,具体实施方式中,可以通过以下方式来设置DC和DT:
如果没有描述信息,则把DT设置为2’b00,DC也设置为全零;如果有描述信息,但是其长度不超过16Bytes,则把DT设置为2’b01,把DT设置为2’b01即表明描述信息的类型是第一类型,描述信息即是控制信息,所以DC中存放的即是控制信息;如果有描述信息,其长度超过16Bytes,则把DT设置为2’b10,把DT设置为2’b10,即表明描述信息的类型是第二类型,描述信息是表示控制信息缓存位置的第二位置信息,在DC中存放8Bytes的控制信息长度+8Bytes的控制信息缓存起始地址。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
请参照图7,是本发明实施例提供的一种第二获取模块的结构示意图;如图7所示,本实施例所述的一种第二获取模块101包括第一获取单元1010、确定单元1011和第二获取单元1012。
第一获取单元1010,用于根据所述第一位置信息在所述缓存位置获取所述目标数据;
具体实施例中,目标数据可以是以报文的形式存在,并且存储在CPU缓存中,具体的,在CPU中对目标数据进行存储的方式为,CPU一般需要为目标数据分配一段连续地址的缓存来作为目标数据的处理CPU缓存,所有需要处理的目标数据都存储在CPU缓存中,例如CPU软件分配一块256M Bytes的内存作为目标数据缓存,另外,为了管理上的方便,还会采用一个固定长度的缓存单元作为基本单位(例如:2K Bytes),把这段CPU缓存切分成大小相同的多个缓存单元(例如:256MB÷2KB=128K个缓存单元)。一个报文,即一个目标数据一般都是占据一个缓存单元,第一位置信息可以是目标数据所存储的缓存单元的起始地址和目标数据长度,所以第一获取单元1010根据第一位置信息可以在CPU缓存中获取到相应的目标数据。
进一步的,第一获取单元1010包括第二查找子单元10100和第二读取子单元10101;
第二查找子单元10100,用于在所述缓存中,查找到所述目标数据的缓存起始地址对应的缓存单元;
具体实施例中,目标数据的存储位置为CPU缓存,且在CPU缓存中,目标数据存储在CPU缓存中的一个缓存单元中,第一位置信息包括目标数据在CPU缓存中对应的缓存单元的缓存起始地址和目标数据的长度,所以第二查找子单元10100在CPU缓存中,首先需要查找到缓存起始地址对应的缓存单元。
第二读取子单元10101,用于在所述缓存单元中,从所述目标数据的缓存起始地址开始读取所述目标数据长度的存储数据,并将所读取的所述存储数据作为所述目标数据。
具体实施例中,在缓存单元中,第二读取子单元10101从目标数据的缓存起始地址开始读取存储数据,且读取的存储数据的长度为目标数据的长度,并将所读取的存储数据作为目标数据。
确定单元1011,用于若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
具体实施例中,若描述信息为控制信息,则确定单元1011直接从BD中读取描述信息的内容,并将所读取的描述信息确定为控制信息。
第二获取单元1012,用于若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
具体实施例中,若描述信息为表示控制信息缓存位置的第二位置信息时,则需要第二获取单元1012根据第二位置信息在控制信息的缓存位置中获取控制信息。需要说明的是,控制信息的缓存位置可以是CPU缓存中,且控制信息在CPU缓存中的存储方式可以是存储在CPU缓存中的一个缓存单元中,所以第二位置信息可以是存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度。则第二获取单元1012可以根据存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度获取到控制信息。
进一步的,第二获取单元1012包括第一查找子单元10120和第一读取子单元10121。
第一查找子单元10120,用于若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,在所述缓存中查找到所述控制信息的缓存起始地址对应的缓存单元;
具体实施例中,控制信息的缓存位置可以是CPU缓存,且控制信息在CPU缓存中的存储方式可以是存储在CPU缓存中的一个缓存单元中,第二位置信息可以是存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度,在CPU缓存中,第一查找子单元10120查找到缓存起始地址对应的缓存单元,一个缓存单元对应一个缓存起始地址。
第一读取子单元10121,用于在所述缓存单元中,从所述控制信息的缓存起始地址开始读取所述控制信息长度的存储数据,并将所读取的所述存储数据作为所述控制信息。
具体实施例中,在缓存单元中,第一读取子单元10121从所查找到的缓存起始地址开始读取存储数据,且读取的存储数据的长度为控制信息的长度,所读取出的存储数据即是控制信息。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
图8是本发明实施例提供的又一种服务器的结构示意图,如图8所示,存储器200,以及与存储器200连接的处理器201,存储器200用于存储一组程序代码,处理器201用于调用存储器200存储的程序执行如下操作:
获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息;
基于所述控制信息,按照所述处理方式处理所述目标数据。
可选的,目标数据可以是以报文的形式存在,并且存储在CPU缓存中。
可选的,第一位置信息用于表示目标数据在CPU缓存中的缓存位置,可以是目标数据对应的缓存单元的起始地址和目标数据的长度。
作为一种可选的实施方式,处理器201执行的根据所述描述信息获取所述控制信息,可以包括:
若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
可选的,第二位置信息可以是存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度。
在另一个可选的实施例中,处理器201还用于执行如下操作:
获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式;
根据所述第一位置信息在所述缓存位置获取所述目标数据,从所述BD中获取所述描述信息类型标识,并根据所述描述信息类型标识确定所述描述信息的类型,当所述描述信息的类型为第一类型时,则确定所述描述信息为所述控制信息;
当所述描述信息的类型为第二类型时,则确定所述描述信息为所述第二位置信息。
若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
基于所述控制信息,按照所述处理方式处理所述目标数据。
可选的,缓存描述符BD包括用于表示目标数据缓存位置的第一位置信息、描述信息类型标识以及描述信息;描述信息类型标识用于确定描述信息的类型,描述信息的类型可以是第一类型和第二类型,当描述信息的类型是第一类型时,则确定描述信息即为控制信息,当描述信息的类型为第二类型时,则确定描述信息为第二位置信息;第二位置信息表示控制信息的缓存位置,所以第二位置信息可以是控制信息的缓存地址,根据描述信息可以获取到控制信息。
作为一种可选的实施方式,处理器201执行的根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息的操作,可以包括:
在所述缓存中查找到所述控制信息的缓存起始地址对应的缓存单元;
在所述缓存单元中,从所述控制信息的缓存起始地址开始读取所述控制信息长度的存储数据,并将所读取的所述存储数据作为所述控制信息。
可选的,控制信息的缓存位置可以是CPU缓存,且控制信息在CPU缓存中的存储方式可以是存储在CPU缓存中的一个缓存单元中,第二位置信息可以是存储控制信息的缓存单元对应的缓存起始地址和控制信息的长度,在CPU缓存中,查找到缓存起始地址对应的缓存单元。在缓存单元中,从所查找到的缓存起始地址开始读取存储数据,且读取的存储数据的长度为控制信息的长度,所读取出的存储数据即是控制信息。
作为一种可选的实施方式,处理器201执行的根据所述第一位置信息在所述缓存位置获取所述目标数据的操作,可以包括:
在所述缓存中,查找到所述目标数据的缓存起始地址对应的缓存单元;
在所述缓存单元中,从所述目标数据的缓存起始地址开始读取所述目标数据长度的存储数据,并将所读取的所述存储数据作为所述目标数据。
可选的,目标数据的存储位置为CPU缓存,且在CPU缓存中,目标数据存储在CPU缓存中的一个缓存单元中,第一位置信息包括目标数据在CPU缓存中对应的缓存单元的缓存起始地址和目标数据的长度,所以在CPU缓存中,首先需要查找到缓存起始地址对应的缓存单元。在缓存单元中,从目标数据的缓存起始地址开始读取存储数据,且读取的存储数据的长度为目标数据的长度,并将所读取的存储数据作为目标数据。
本发明实施例中,获取目标数据缓存描述符BD中用于描述目标数据缓存位置的第一位置信息和用于描述控制信息的描述信息,再根据第一位置信息和描述信息获取到目标数据和控制信息,最后基于控制信息对目标数据进行处理,这种数据处理方法不需要在缓存中将目标数据和控制信息进行复制搬移和重新组合,处理方法简单,效率极高。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例终端中的模块或单元可以根据实际需要进行合并、划分和删减。
本发明实施例的微控制器等部件,可以以通用集成电路(如中央处理器CPU),或以专用集成电路(ASIC)来实现。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式,所述对所述目标数据的处理方式包括对所述目标数据进行加速处理,或者对所述目标数据进行运算处理;
根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息;
基于所述控制信息,按照所述处理方式处理所述目标数据。
2.如权利要求1所述的方法,其特征在于,所述根据所述描述信息获取所述控制信息,包括:
若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
3.如权利要求2所述的方法,其特征在于,所述目标数据的缓存描述符BD还包括描述信息类型标识,所述描述信息类型标识用于标识所述描述信息的类型;所述方法还包括:
从所述BD中获取所述描述信息类型标识,并根据所述描述信息类型标识确定所述描述信息的类型,当所述描述信息的类型为第一类型时,则确定所述描述信息为所述控制信息;
当所述描述信息的类型为第二类型时,则确定所述描述信息为所述第二位置信息。
4.如权利要求2或3所述的方法,其特征在于,所述第二位置信息包括所述控制信息的缓存起始地址和所述控制信息的长度,所述根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息,包括:
在所述缓存中查找到所述控制信息的缓存起始地址对应的缓存单元;
在所述缓存单元中,从所述控制信息的缓存起始地址开始读取所述控制信息的长度的存储数据,并将所读取的所述存储数据作为所述控制信息。
5.如权利要求1至3任一项所述的方法,其特征在于,所述第一位置信息包括所述目标数据的缓存起始地址和所述目标数据的长度,所述根据所述第一位置信息在所述缓存位置获取所述目标数据,包括:
在所述缓存中,查找到所述目标数据的缓存起始地址对应的缓存单元;
在所述缓存单元中,从所述目标数据的缓存起始地址开始读取所述目标数据的长度的存储数据,并将所读取的所述存储数据作为所述目标数据。
6.一种服务器,其特征在于,所述服务器包括:
第一获取模块,用于获取目标数据的缓存描述符BD,所述BD包括第一位置信息和描述信息,其中,所述第一位置信息用于表示所述目标数据的缓存位置,所述描述信息用于描述控制信息,所述控制信息用于描述对所述目标数据的处理方式,所述对所述目标数据的处理方式包括对所述目标数据进行加速处理,或者对所述目标数据进行运算处理;
第二获取模块,用于根据所述第一位置信息在所述缓存位置获取所述目标数据,并根据所述描述信息获取所述控制信息;
处理模块,用于基于所述控制信息,按照所述处理方式处理所述目标数据。
7.如权利要求6所述的服务器,其特征在于,所述第二获取模块包括:
第一获取单元,用于根据所述第一位置信息在所述缓存位置获取所述目标数据;
确定单元,用于若所述描述信息为所述控制信息,则将所述描述信息确定为所述控制信息;
第二获取单元,用于若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,则根据所述第二位置信息在所述控制信息缓存位置中获取所述控制信息。
8.如权利要求7所述的服务器,其特征在于,所述目标数据的缓存描述符BD还包括描述信息类型标识,所述描述信息类型标识用于标识所述描述信息的类型;所述服务器还包括:
获取确定模块,用于从所述BD中获取所述描述信息类型标识,并根据所述描述信息类型标识确定所述描述信息的类型,当所述描述信息的类型为第一类型时,则确定所述描述信息为所述控制信息;
当所述描述信息的类型为第二类型时,则确定所述描述信息为所述第二位置信息。
9.如权利要求7或8所述的服务器,其特征在于,所述第二位置信息包括所述控制信息的缓存起始地址和所述控制信息的长度,所述第二获取单元包括:
第一查找子单元,用于若所述描述信息为用于表示所述控制信息缓存位置的第二位置信息,在所述缓存中查找到所述控制信息的缓存起始地址对应的缓存单元;
第一读取子单元,用于在所述缓存单元中,从所述控制信息的缓存起始地址开始读取所述控制信息的长度的存储数据,并将所读取的所述存储数据作为所述控制信息。
10.如权利要求6至8任一项所述的服务器,其特征在于,所述第一位置信息包括所述目标数据的缓存起始地址和所述目标数据的长度,所述第一获取单元包括:
第二查找子单元,用于在所述缓存中,查找到所述目标数据的缓存起始地址对应的缓存单元;
第二读取子单元,用于在所述缓存单元中,从所述目标数据的缓存起始地址开始读取所述目标数据的长度的存储数据,并将所读取的所述存储数据作为所述目标数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410041004.4A CN103761060B (zh) | 2014-01-27 | 2014-01-27 | 一种数据处理方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410041004.4A CN103761060B (zh) | 2014-01-27 | 2014-01-27 | 一种数据处理方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103761060A CN103761060A (zh) | 2014-04-30 |
CN103761060B true CN103761060B (zh) | 2017-02-15 |
Family
ID=50528305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410041004.4A Active CN103761060B (zh) | 2014-01-27 | 2014-01-27 | 一种数据处理方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103761060B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3166275A4 (en) | 2014-08-11 | 2017-07-19 | Huawei Technologies Co., Ltd. | Packet control method, switch and controller |
CN106708443B (zh) * | 2017-01-03 | 2020-01-17 | 北京百度网讯科技有限公司 | 数据读写方法及装置 |
CN110069422B (zh) * | 2018-01-23 | 2021-06-18 | 普天信息技术有限公司 | 基于mips多核处理器的内存缓冲区回收方法 |
CN111782133A (zh) * | 2019-04-04 | 2020-10-16 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222430A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种高速多协议数据传输***和方法 |
CN101788956A (zh) * | 2009-12-15 | 2010-07-28 | 福建星网锐捷网络有限公司 | 多通道数据存储方法、装置和多通道数据接收*** |
CN103064807A (zh) * | 2012-12-17 | 2013-04-24 | 福建星网锐捷网络有限公司 | 多通道直接存储器存取控制器 |
CN103500149A (zh) * | 2013-09-29 | 2014-01-08 | 华为技术有限公司 | 直接内存访问控制器和直接内存访问控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7325122B2 (en) * | 2004-02-20 | 2008-01-29 | International Business Machines Corporation | Facilitating inter-DSP data communications |
US7944946B2 (en) * | 2008-06-09 | 2011-05-17 | Fortinet, Inc. | Virtual memory protocol segmentation offloading |
-
2014
- 2014-01-27 CN CN201410041004.4A patent/CN103761060B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222430A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种高速多协议数据传输***和方法 |
CN101788956A (zh) * | 2009-12-15 | 2010-07-28 | 福建星网锐捷网络有限公司 | 多通道数据存储方法、装置和多通道数据接收*** |
CN103064807A (zh) * | 2012-12-17 | 2013-04-24 | 福建星网锐捷网络有限公司 | 多通道直接存储器存取控制器 |
CN103500149A (zh) * | 2013-09-29 | 2014-01-08 | 华为技术有限公司 | 直接内存访问控制器和直接内存访问控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103761060A (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761060B (zh) | 一种数据处理方法及服务器 | |
US8001283B2 (en) | Efficient, scalable and high performance mechanism for handling IO requests | |
CN108153757A (zh) | 一种哈希表管理的方法和装置 | |
CN107430628B (zh) | 具有直接数据传输机制的加速框架 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN109564545A (zh) | 用于压缩地址的方法和设备 | |
CN104850502A (zh) | 一种数据的访问方法、装置及设备 | |
CN104462477A (zh) | 基于时间戳的数据同步的方法、装置及*** | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
EP3825847B1 (en) | Data processing method and apparatus, and related product | |
CN105260332A (zh) | 一种对cpld数据包进行有序存储的方法及*** | |
CN111797119A (zh) | 一种缓存装置、***及缓存方法 | |
CN107943727A (zh) | 一种高效dma控制器 | |
CN107741965B (zh) | 数据库同步处理方法、装置、计算设备及计算机存储介质 | |
CN105677491A (zh) | 一种数据传输方法及装置 | |
CN113791730B (zh) | 基于双存储池的放置组调整方法、***、装置及存储介质 | |
CN106445472A (zh) | 一种字符操作加速方法、装置、芯片、处理器 | |
CN114036077A (zh) | 数据处理方法及相关装置 | |
CN109522242A (zh) | 一种搜索Cache数据的方法和装置 | |
US20100306405A1 (en) | Prefetch Optimization of the Communication of Data Using Descriptor Lists | |
CN108874994A (zh) | 一种分块读取数据的方法、装置及计算机存储介质 | |
CN111008002B (zh) | 自动计算并更新fifo深度的装置和方法 | |
CN107688613B (zh) | 一种数据包的处理规则优化方法及计算设备 | |
CN103973581A (zh) | 一种报文数据处理方法、装置及*** | |
CN104702507B (zh) | 表项动态更新方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |