一种数据交换方法及电子设备技术

技术编号:20841784 阅读:20 留言:0更新日期:2019-04-13 08:39
本发明专利技术公开了一种数据交换方法及电子设备,该方法包括:FPGA将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的数据;其中,j=M‑i+1;第i个数据占至少一个字节;第j个数据占至少一个字节;FPGA读取重排之后的M个数据。通过这种方式,FPGA只需将待读取数据中的M个数据交换M/2次就可以将M个数据的顺序完成重排,减少了M个数据的交换次数,节省了时间,从而可以提高数据交换的效率。

【技术实现步骤摘要】
一种数据交换方法及电子设备
本专利技术涉及计算机软件与FPGA数据交换
,尤指一种数据交换方法及电子设备。
技术介绍
目前,电子设备中的存储器和现场可编程门阵列(FieldProgrammableGateArray,FPGA)在存储数据时采用大端在左,小端在右的方式进行存储。比如以两字节整数,32个数据(即一个数据占两个字节,32个数据共64字节)为例,第1个数据大端字节为1,小端字节为0,…第32个数据大端字节为63,小端字节为62。因此,在计算机中连续存储数据顺序一般为:103254…6362。而FPGA在读写64字节数据时的顺序为63626160……3210。因此,目前FPGA读取存储器中的数据时,需要对要读取的数据进行翻转,例如存储器中存储的数据为:103254…61606362。当FPGA读写存储器中的数据时,FPGA先将每个数据的两字节翻转:即0123…6263,然后将最后一个数据的两个字节和第一个数据的两个字节翻转,倒数第二个数据的两个字节和第二个数据的两个字节翻转:即63626160…3210,FPGA从而可以能够对存储器中的数据进行读写。由于,存储器中的数据需要遍历两次,每个字节需要交换两次,从而使得存储器中的数据翻转次数较多,耗费时间,进而使得存储器与FPGA之间的数据交换的效率低。
技术实现思路
本专利技术实施例提供一种数据交换方法及电子设备,用以提高数据交换的效率。第一方面,本专利技术实施例提供一种数据交换方法,应用于一电子设备;所述电子设备包括现场可编程门阵列FPGA以及存储器,所述存储器用于存储数据,所述FPGA用于从所述存储器中读取数据,所述方法包括:所述FPGA将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的M个数据;其中,所述j=M-i+1;所述第i个数据占至少一个字节;所述第j个数据占至少一个字节;所述FPGA读取所述重排之后的M个数据。可选地,所述待读取数据中每个数据占K个字节,所述FPGA一次读取N个字节,所述待读取数据的字节总长为L,其中,所述L为所述N的整数倍,所述K、L、N均为大于0的整数;所述FPGA将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,包括:所述FPGA将所述待读取数据分为L/N个第一数据;所述FPGA再将第q个第一数据分为N/K个第二数据;所述q为大于0小于等于L/N的整数;所述N/K=M;所述FPGA将第i个第二数据和第j个第二数据交换;其中,所述i为大于0小于等于N/K的整数。可选地,所述方法还包括:若所述L不是所述N的整数倍,所述FPGA对所述待读取数据进行前面补充零,使补充零后的待读取数据的长度L为所述N的整数倍。可选地,所述第i个数据和所述第j个数据所占的字节数相同。第二方面,本专利技术实施例提供一种电子设备,包括:存储单元,所用于存储数据;处理单元,用于从所述存储单元中读取数据;所述处理单元还用于将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的M个数据;其中,所述j=M-i+1;所述第i个数据占至少一个字节;所述第j个数据占至少一个字节;所述处理单元还用于读取所述重排之后的M个数据。可选地,所述待读取数据中每个数据占K个字节,所述处理单元一次读取N个字节,所述待读取数据的字节总长为L,其中,所述L为所述N的整数倍,所述K、L、N均为大于0的整数;所述处理单元在用于将待读取数据中包括的M个数据中的第i个数据和第j个数据交换时,具体用于:将所述待读取数据分为L/N个第一数据;再将第q个第一数据分为N/K个第二数据;所述q为大于0小于等于L/N的整数;所述N/K=M;将第i个第二数据和第j个第二数据交换;其中,所述i为大于0小于等于N/K的整数。可选地,所述处理单元还用于:若所述L不是所述N的整数倍,对所述待读取数据进行前面补充零,使补充零后的待读取数据的长度L为所述N的整数倍。可选地,所述第i个数据和所述第j个数据所占的字节数相同。第三方面,本专利技术实施例提供一种电子设备,包括:存储器,所用于存储数据;FPGA,用于从所述存储器中读取数据;所述FPGA还用于将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的M个数据;其中,所述j=M-i+1;所述第i个数据占至少一个字节;所述第j个数据占至少一个字节;所述FPGA还用于读取所述重排之后的M个数据。可选地,所述待读取数据中每个数据占K个字节,所述FPGA一次读取N个字节,所述待读取数据的字节总长为L,其中,所述L为所述N的整数倍,所述K、L、N均为大于0的整数;所述FPGA在用于将待读取数据中包括的M个数据中的第i个数据和第j个数据交换时,具体用于:将所述待读取数据分为L/N个第一数据;再将第q个第一数据分为N/K个第二数据;所述q为大于0小于等于L/N的整数;所述N/K=M;将第i个第二数据和第j个第二数据交换;其中,所述i为大于0小于等于N/K的整数。可选地,所述FPGA还用于:若所述L不是所述N的整数倍,对所述待读取数据进行前面补充零,使补充零后的待读取数据的长度L为所述N的整数倍。可选地,所述第i个数据和所述第j个数据所占的字节数相同。第四方面,本专利技术实施例提供一种电子设备,包括处理器和存储器;其中,所述存储器用于存储一个或多个计算机程序;当所述存储器存储的一个或多个计算机程序被所述处理器执行时,使得所述电子设备实现第一方面或上述第一方面的任意一种可能的设计的方法。第五方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或上述第一方面的任意一种可能的设计的方法。第六方面,本专利技术实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或上述第一方面的任意一种可能的设计的方法。本专利技术有益效果如下:本专利技术中实施例的技术方案中,FPGA将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的数据;其中,j=M-i+1;第i个数据占至少一个字节;第j个数据占至少一个字节;FPGA读取重排之后的M个数据。通过这种方式,FPGA只需将待读取数据中的M个数据交换M/2次就可以将M个数据的顺序完成重排,减少了M个数据的交换次数,节省了时间,从而可以提高数据交换的效率。附图说明图1为本专利技术实施例提供的一种数据交换方法的流程示意图;图2为本专利技术实施例提供的一种电子设备的结构示意图;图3为本专利技术实施例提供的一种电子设备的结构示意图;图4为本专利技术实施例提供的一种电子设备的结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。附图中各部件的形状和大小不反映真实比例,目的只是示意说明本
技术实现思路
。请参考图1所示,为本专利技术实施例提供的一种数据交换方法的流程示意图。该方法应用于本文档来自技高网
...

【技术保护点】
1.一种数据交换方法,应用于一电子设备;所述电子设备包括现场可编程门阵列FPGA以及存储器,所述存储器用于存储数据,所述FPGA用于从所述存储器中读取数据,其特征在于,所述方法包括:所述FPGA将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的M个数据;其中,所述j=M‑i+1;所述第i个数据占至少一个字节;所述第j个数据占至少一个字节;所述FPGA读取所述重排之后的M个数据。

【技术特征摘要】
1.一种数据交换方法,应用于一电子设备;所述电子设备包括现场可编程门阵列FPGA以及存储器,所述存储器用于存储数据,所述FPGA用于从所述存储器中读取数据,其特征在于,所述方法包括:所述FPGA将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的M个数据;其中,所述j=M-i+1;所述第i个数据占至少一个字节;所述第j个数据占至少一个字节;所述FPGA读取所述重排之后的M个数据。2.如权利要求1所述的方法,其特征在于,所述待读取数据中每个数据占K个字节,所述FPGA一次读取N个字节,所述待读取数据的字节总长为L,其中,所述L为所述N的整数倍,所述K、L、N均为大于0的整数;所述FPGA将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,包括:所述FPGA将所述待读取数据分为L/N个第一数据;所述FPGA再将第q个第一数据分为N/K个第二数据;所述q为大于0小于等于L/N的整数;所述N/K=M;所述FPGA将第i个第二数据和第j个第二数据交换;其中,所述i为大于0小于等于N/K的整数。3.如权利要求2所述的方法,其特征在于,所述方法还包括:若所述L不是所述N的整数倍,所述FPGA对所述待读取数据进行前面补充零,使补充零后的待读取数据的长度L为所述N的整数倍。4.如权利要求1-3任一项所述的方法,其特征在于,所述第i个数据和所述第j个数据所占的字节数相同。5.一种电子设备,其特征在于,包括:存储器,用于存储数据;FPGA,用于从所述存储器中读取数据;所述FPGA还用于将待读取数据中包括的M个数据中的第i个数据和第j个数据交换,得到重排之后的M个...

【专利技术属性】
技术研发人员:陈海波
申请(专利权)人:深兰人工智能芯片研究院江苏有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1