数据处理装置及其内存数据处理方法制造方法及图纸

技术编号:7758853 阅读:139 留言:0更新日期:2012-09-14 00:22
本发明专利技术公开了一种数据处理装置及其内存数据处理方法。该方法包括:确定待处理数据的数据量;根据所述数据处理装置的机器字长和所述待处理数据的数据量来设定单次数据处理量,其中,所述单次数据处理量小于等于所述待处理数据的数据量;通过执行n次数据处理子任务来完成对所述待处理数据的数据量的一部分,其中,n等于所述待处理数据的数据量与所述单次数据处理量的商,所述单次数据处理量为每执行一次所述数据处理子任务所处理的数据量。在本发明专利技术的内存数据处理方法能够提高数据处理效率。

【技术实现步骤摘要】

本专利技术涉及计算机应用
,尤其涉及一种。
技术介绍
各种数据处理设备中,经常利用内存进行数据处理(以下简称内存数据处理), 例如,进行内存数据拷贝、删除、移动等处理,用于执行这些处理的函数采用C语言来实现。CPU (Central Processing Unit,中央处理器)通过各种内存处理函数处理一个字节的数据和处理一个机器字的数据一样,都是在一条指令、一个CPU时钟周期内完成的。但是,这种处理方式并不能有效利用数据设备的硬件性来提高内存数据处理效率。例如,在Linux系统中,Glibc库是最底层的函数库,为其上的应用程序提供系统接口以及其它功能函数,Linux系统上的其它函数库都需要直接或间接依赖于Glibc库。此外,Glibc库还是以C语言构建开发程序时使用的基本函数库。例如,作为基本函数库中函数之一的memcpy即为通过C语言来实现的内存数据拷贝函数。以龙芯3A处理器为例,龙芯3A处理器实现了 64位的MIPS (millions ofinstructions per second,百万条指令/秒)III指令集,整数寄存器和浮点寄存器均为64位,指令流水线每个时钟周期取四条指令进行译码,将译码后的指令动态地发射到五个全流水的功能部件中。龙芯3A处理器包含两级Cache (高速缓冲存储器)结构,一级Cache中包括数据或指令,为64kB ;二级Cache是混合Cache,其中同时包括指令和数据,为64kB。一级Cache和二级Cache都采用四路组相联结构,均采用随机替换算法,每个Cache行大小均为32字节,即可以存放8个字。目前,在龙芯3A处理器中,内存处理函数通常按照机器字长逐字进行数据操作,以机器字为单位,每次处理机器字数量的数据,直至剩余数据少于机器字数量的数据。然后,以字节为单位进行数据处理,直至将数据处理完毕。在32位机中,一个机器字等于4个字节。可见,对于高速缓冲存储器及寄存器均已为64位的龙芯3A,在内存拷贝过程中仍然统一采取以机器字或者字节为单位并不能充分利用硬件能力,效率比较低。此时,如果采用C语言来实现内存拷贝等处理,在龙芯3A处理器的数据处理过程,需要通过编译器将C语言编译成汇编语言,在此编译过程中编译器可能产生低效、冗余的代码,且会按编译器的方式进行编译和优化,即使对小数据量的拷贝也难以高效进行。
技术实现思路
本专利技术所要解决的技术问题之一是需要提供一种能够提高内存数据处理效率的。为了解决上述技术问题,本专利技术提供了一种数据处理装置的内存数据处理方法,该方法包括第一确定步骤,确定待处理数据的数据量;第二确定步骤,根据所述数据处理装置的机器字长和所述待处理数据的数据量来设定单次数据处理量,其中,所述单次数据处理量小于等于所述待处理数据的数据量;处理步骤,通过执行n次数据处理子任务来完成对所述待处理数据的数据量的一部分,其中,n等于所述待处理数据的数据量与所述单次数据处理量的商,所述单次数据处理量为每执行一次所述数据处理子任务所处理的数据量。根据本专利技术的另一方面的内存数据处理方法,还包括若所述待处理数据中还存在未被处理的数据,则将所述待处理数据更新为经过所述处理步骤后仍未被处理的数据,并返回所述第一确定步骤。根据本专利技术的另一方面的内存数据处理方法,在根据所述数据处理装置的机器字长和所述待处理数据的数据量来设定单次数据处理量的步骤中,当所述待处理数据的数据量大于等于所述数据处理装置的一个机器字长时,将所述单次数据处理量设置小于等于待处理数据的数据量且为所述数据处理装置的机器字长的整数倍。根据本专利技术的另一方面的内存数据处理方法,在根据所述数据处理装置的机器字长和所述待处理数据的数据量来设定单次数据处理量的步骤中,当待处理数据的数据量大于等于所述数据处理装置的一个机器字长时,使得单次数据处理量小于等于待处理数据的数据量且为所述数据处理装置的机器字长的2的整数次幂倍。根据本专利技术的另一方面的内存数据处理方法,在根据所述数据处理装置的机器字长和所述待处理数据的数据量来设定单次数据处理量的步骤中,当所述待处理数据的数据量大于等于所述数据处理装置的一个机器字长时,使得所述单次数据处理量小于等于待处理数据的数据量且为所述数据处理装置的机器字长的2的最大整数次幂倍。根据本专利技术的另一方面的内存数据处理方法,在根据所述数据处理装置的机器字长和所述待处理数据的数据量来设定单次数据处理量的步骤中,当所述待处理数据的数据量小于所述数据处理装置的一个机器字长时,使得所述单次数据处理量等于所述待处理数据的数据量。根据本专利技术的另一方面的内存数据处理方法,利用汇编语言来实现本方法。根据本专利技术的另一方面的内存数据处理方法,所述内存数据处理为内存数据拷贝、删除和/或移动处理。根据本专利技术的又一方面,还提供了一种数据处理装置,所述数据处理装置的机器字长大于32位,其中,所述数据处理装置采用上述的内存数据处理方法来处理数据。根据本专利技术的又一方面,上述数据处理装置为龙芯3A。与现有技术相比,本专利技术的一个或多个实施例可以具有如下优点在本专利技术的内存数据处理方法能够尽可能减少循环次数,减少分支情况,充分利用流水处理,使得Cache尽量命中,从而提高数据处理效率。本专利技术的一个实施例中,通过根据机器字长和待处理数据的数据量来设定单次数据处理量,且通过顺次执行多次数据处理子任务来完成对该待处理数据的数据量的一部分,可顺次执行批量(一个以上机器字长的)的数据,这样相比每处理32位数据就需要执行一次循环跳转的传统技术,大大提高了数据处理效率。本专利技术的几个实施例中,通过进一步改进单次数据处理量的确定方式,可进一步减少循环次数,从而进一步提高数据处理效率。虽然在下文中将结合一些示例性实施及使用方法来描述本专利技术,但本领域技术人员应当理解,为并不旨在将本发 明限制于这些实施例。反之,旨在覆盖包含在所附的权利要求书所定义的本专利技术的精神与范围内的所有替代品、修正及等效物。本专利技术的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导。本专利技术的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例共同用于解释本专利技术,并不构成对本专利技术的限制。在附图中图I是根据本专利技术第一实施例的数据处理装置的内存数据处理方法的流程示意图;图2是根据本专利技术第二实施例的数据处理装置的内存数据处理方法的流程示意图。具体实施例方式以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本专利技术如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本专利技术中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本专利技术的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。第一实施例信息处理设备中通过提供常见的通用功能实现,如字符串处理等。本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:黄卫军许国昌何曌君杨冲夏颖胡秋立
申请(专利权)人:中标软件有限公司
类型:发明
国别省市:

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

1