一种数据处理的方法及装置与流程

文档序号:14008261阅读:171来源:国知局
一种数据处理的方法及装置与流程

本发明涉及数据处理领域,特别是涉及一种数据处理的方法及装置。



背景技术:

在当今社会,随着大数据时代的到来,信息数据的数量呈现出爆炸式增长,对于数据的相关处理所造成的系统负载不断增大。

原有技术通常采用cpu作为逻辑指令的控制主体以及数据处理算法的执行主体,因此仅通过cpu等常用处理器对于海量数据进行处理,会出现占用处理器资源过多的情况,长时间占用大量的处理器资源,会增大处理器的工作负载,导致其无法为系统的其它操作提供可用资源,无法保证整体的高效性。随着fpga的兴起,其具有的优势逐渐被人们所发现,由于fpga属于半定制电路,可以根据用户所设定的执行逻辑而改变电路逻辑,并且fpga具有并行运算的执行特性,因此有优良的数据处理性能,如何合理的使用fpga以协助cpu等常用处理器进行数据处理,进而减轻常用处理器的工作压力一直是当前所研究的重点。另外,由于当前对数据的处理控制流程逐渐繁琐,进而对于fpga的控制指令也在增加,因此往往需要一系列繁杂的处理逻辑以控制fpga执行相应的数据处理内容,这也同样需要占用cpu等常用处理器一定的可用资源,进而增加其工作负载,相对降低了数据处理的整体效率。

由此可见,提供一种数据处理的方法,以减少对cpu等常用处理器中可用资源的占用,并且提高数据算法处理效率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种数据处理的方法及装置,减少了对cpu等常用处理器中可用资源的占用,并且提高了数据处理效率。

为解决上述技术问题,本发明提供一种数据处理的方法,包括:

处理器将初始数据传输至fpga,并向dsp芯片发起处理指令;

dsp芯片接收处理指令,并根据处理指令在预设的控制逻辑集合中选取对应的目标控制逻辑;

dsp芯片依照目标控制逻辑控制fpga采用预设的相关处理方法对初始数据进行数据处理以得到结果数据。

优选的,处理指令具体为gzip解压缩指令;

相应的,目标控制逻辑具体包括:

控制fpga对初始数据进行huffman解码以得到过程数据;

控制fpga对过程数据进行lz77解压缩以得到结果数据;

相应的,相关处理方法具体包括:

huffman解码处理方法及lz77解压缩处理方法。

优选的,控制fpga对过程数据进行lz77解压缩以得到结果数据具体为:

当过程数据的总量达到规定阈值时,控制fpga对过程数据进行lz77解压缩以得到结果数据。

优选的,处理器将初始数据传输至fpga具体为:

处理器将初始数据传输至fpga预设的缓存中。

优选的,在dsp芯片依照目标控制逻辑控制fpga采用预设的相关处理方法对初始数据进行数据处理以得到结果数据后,该方法进一步包括:

fpga将结果数据传输至处理器。

优选的,处理器将初始数据传输至fpga,并向dsp芯片发起处理指令具体为:

处理器通过pci-e接口将初始数据传输至fpga,并通过pci-e接口向dsp芯片发起处理指令。

优选的,dsp芯片与fpga之间采用fifo接口连接。

此外,本发明还提供一种数据处理的装置,包括:

处理器,用于将初始数据传输至fpga,并向dsp芯片发起处理指令;

dsp芯片,用于接收处理指令,并根据处理指令在预设的控制逻辑集合中选取对应的目标控制逻辑,以及依照目标控制逻辑控制fpga采用预设的相关处理方法对初始数据进行数据处理以得到结果数据;

fpga,用于接收处理器传输的初始数据,并在dsp芯片控制下采用预设的相关处理方法对初始数据进行数据处理以得到结果数据。

优选的,fpga进一步用于将结果数据传输至处理器。

本发明所提供的数据处理的方法,处理器仅需要将初始数据传输至fpga,并且将对于初始数据的处理指令发送至dsp芯片,当dsp芯片接收到处理器所发送的处理指令后,找到与该处理指令相对应的目标控制逻辑,并且依照该目标控制逻辑控制fpga对原始数据进行数据处理。相当于,在本方法中,处理器只负责数据的传输以及进行对数据的处理指令的发起,而执行控制逻辑的工作由dsp芯片分担,对数据进行运算等处理的工作由fpga分担。本方法合理利用dsp芯片的逻辑控制指令的设计及执行的灵活性以及fpga较为强大的并行数据处理能力,分担了处理器的工作负载,进而实现了减少对cpu等常用处理器中可用资源的占用,并且提高数据算法处理效率,此外fpga成本相对较低,降低了数据处理成本。此外,本发明还提供一种数据处理的装置,有益效果如上所述。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据处理的方法的流程图;

图2为本发明实施例提供的一种数据处理的装置结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种数据处理的方法,减少了对cpu等常用处理器中可用资源的占用,并且提高了数据处理效率。本发明的另一核心是提供一种数据处理的装置。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施例一

图1为本发明实施例提供的一种数据处理的方法的流程图。请参考图1,数据处理的方法的具体步骤包括:

步骤s10:处理器将初始数据传输至fpga,并向dsp芯片发起处理指令。

需要说明的是,本步骤中,处理器将待处理的初始数据以及处理指令分别传输至fpga于dsp芯片,进而在后续步骤中通过fpga进行数据的处理,并通过dsp芯片对fpga进行数据处理逻辑上的控制,进而减少了处理器的工作内容。dsp芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的dsp指令,可以用来快速的实现各种数字信号处理算法,因此dsp芯片能够快捷有效的对fpga进行逻辑指令的控制。

步骤s11:dsp芯片接收处理指令,并根据处理指令在预设的控制逻辑集合中选取对应的目标控制逻辑。

在本步骤中,dsp芯片接收处理指令后,启用相应的控制逻辑。dsp芯片中可以存储多套执行逻辑,进而根据cpu处理指令的不同而采用与之对应的执行逻辑以控制fpga。

步骤s12:dsp芯片依照目标控制逻辑控制fpga采用预设的相关处理方法对初始数据进行数据处理以得到结果数据。

可以理解的是,fpga中预先设置有多种对于数据的相关处理方法,进而接收dsp芯片的逻辑控制信号,根据dsp的控制逻辑调用对应的相关处理方法对初始数据进行处理得到结果数据。可见本方法中的fpga代替了处理器对于原始数据的处理工作,减轻了处理器的工作压力。

本发明所提供的数据处理的方法,处理器仅需要将初始数据传输至fpga,并且将对于初始数据的处理指令发送至dsp芯片,当dsp芯片接收到处理器所发送的处理指令后,找到与该处理指令相对应的目标控制逻辑,并且依照该目标控制逻辑控制fpga对原始数据进行数据处理。相当于,在本方法中,处理器只负责数据的传输以及进行对数据的处理指令的发起,而执行控制逻辑的工作由dsp芯片分担,对数据进行运算等处理的工作由fpga分担。本方法合理利用dsp芯片的逻辑控制指令的设计及执行的灵活性以及fpga较为强大的并行数据处理能力,分担了处理器的工作负载,进而实现了减少对cpu等常用处理器中可用资源的占用,并且提高数据算法处理效率,此外fpga成本相对较低,降低了数据处理成本。

实施例二

在上述实施例的基础上,作为一种优选的实施方式,处理指令具体为gzip解压缩指令;

相应的,目标控制逻辑具体包括:

控制fpga对初始数据进行huffman解码以得到过程数据;

控制fpga对过程数据进行lz77解压缩以得到结果数据;

相应的,相关处理方法具体包括:

huffman解码处理方法及lz77解压缩处理方法。

需要说明的是,gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在linux平台。当应用gzip压缩一个纯文本文件时,效果非常明显,大约可以减少70%以上的文件大小,而进行gzip解压缩的操作步骤与gzip压缩的操作步骤相反,gzip解压缩所执行的固定步骤是先对初始数据进行huffman解码,得到过程数据,再对该过程数据进行lz77解压缩,进而得到结果数据。可以理解的是,由于dsp芯片需要根据gzip解压缩的逻辑操作控制fpga执行相应的数据运算,因此在fpga中应预先存在有huffman解码处理方法及lz77解压缩处理方法以供fpga调用。

在上述实施方式的基础上,作为一种优选的实施方式,控制fpga对过程数据进行lz77解压缩以得到结果数据具体为:

当过程数据的总量达到规定阈值时,控制fpga对过程数据进行lz77解压缩以得到结果数据。

需要说明的是,由于在fpga中顺序执行huffman解码以及lz77解压缩,需要先将全部的初始数据通过huffman解码处理为过程数据并从fpga中输出,再将全部过程数据输入fpga通过lz77解压缩以得到结果数据并输出,但是输入与输出往往会造成一定的时间开销,并且经过huffman解码处理后的过程数据从fpga中输出还会造成存储开销,此外也无法体现出fpga具有并行性处理的特点。因此,作为一种优选的实施方式,可以通过设定阈值,进而当在fpga中经过huffman解码所得的过程数据的总量达到阈值时,则直接将过程数据继续在fpga中以lz77解压缩的方式进行处理,进而节省了一定在时间以及存储空间上的开销,提高了整体算法的运行速度,进而提高了效率。另外,阈值应根据fpga的实际性能而定,在此不做具体限定。

此外,作为一种优选的实施方式,处理器将初始数据传输至fpga具体为:

处理器将初始数据传输至fpga预设的缓存中。

需要说明的是,当fpga要读取一个数据时,首先从缓存中查找,如果找到就立即读取并进行处理;如果没有找到,就用相对慢的速度从内存中读取并进行处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。因此,采用缓存的方式读取数据能够提高对数据的处理效率。

此外,作为一种优选的实施方式,在dsp芯片依照目标控制逻辑控制fpga采用预设的相关处理方法对初始数据进行数据处理以得到结果数据后,该方法进一步包括:

fpga将结果数据传输至处理器。

可以理解的是,由于fpga所做的本职工作是对数据的处理,但是在数据处理接收后,还可能需要对结果数据进行存储、显示等一系列后续操作,因此需要将结果数据传输至处理器以进行后续操作。

此外,作为一种优选的实施方式,处理器将初始数据传输至fpga,并向dsp芯片发起处理指令具体为:

处理器通过pci-e接口将初始数据传输至fpga,并通过pci-e接口向dsp芯片发起处理指令。

pci-e规格从1条通道连接到32条通道连接,有非常强的伸缩性,以满足不同系统设备对数据传输带宽不同的需求。此外,较短的pci-e卡可以插入较长的pci-e插槽中使用,pci-e接口还能够支持热拔插,并且,pci-e接口所能提供的传输速度能够满足主流芯片之间的传输带宽要求,因此处理器通过pci-e接口将初始数据传输至fpga,并通过pci-e接口向dsp芯片发起处理指令,能够保证fpga、处理器以及dsp芯片之间数据传输的稳定性及可靠性。

此外,作为一种优选的实施方式,dsp芯片与fpga之间采用fifo接口连接。

由于dsp芯片与pfga有各自的全局时钟,因此将数据由dsp芯片传输至fpga中时,可能导致两个芯片之间操作不同步的情况发生,影响数据传输及处理的整体稳定性,通过fifo接口可以建立dsp芯片与pfga异步传输关系,通过fifo的数据缓存器,先将数据进行缓存,进而选择合适的时机将数据传输至目标芯片,使数据在异步传输时不会出现损坏及丢失的情况,保证了芯片之间的通信稳定。

实施例三

在上文中对于数据处理的方法实施例进行了详细的描述,本发明还提供一种与该方法对应的数据处理的装置,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图2为本发明实施例提供的一种数据处理的装置结构图。本发明实施例提供的数据处理的装置,具体包括:

处理器10,用于将初始数据传输至fpga12,并向dsp芯片11发起处理指令;

dsp芯片11,用于接收处理指令,并根据处理指令在预设的控制逻辑集合中选取对应的目标控制逻辑,以及依照目标控制逻辑控制fpga12采用预设的相关处理方法对初始数据进行数据处理以得到结果数据;

fpga12,用于接收处理器10传输的初始数据,并在dsp芯片11控制下采用预设的相关处理方法对初始数据进行数据处理以得到结果数据。

本发明所提供的数据处理的装置,处理器仅需要将初始数据传输至fpga,并且将对于初始数据的处理指令发送至dsp芯片,当dsp芯片接收到处理器所发送的处理指令后,找到与该处理指令相对应的目标控制逻辑,并且依照该目标控制逻辑控制fpga对原始数据进行数据处理。相当于,在本装置中,处理器只负责数据的传输以及进行对数据的处理指令的发起,而执行控制逻辑的工作由dsp芯片分担,对数据进行运算等处理的工作由fpga分担。本装置合理利用dsp芯片的逻辑控制指令的设计及执行的灵活性以及fpga较为强大的并行数据处理能力,分担了处理器的工作负载,进而实现了减少对cpu等常用处理器中可用资源的占用,并且提高数据算法处理效率,此外fpga成本相对较低,降低了数据处理成本。

在实施例三的基础上,dsp芯片进一步用于将结果数据传输至处理器。

以上对本发明所提供的一种数据处理的方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1