[发明专利]内存初始化的方法及装置在审
申请号: | 201210518676.0 | 申请日: | 2012-12-05 |
公开(公告)号: | CN103853667A | 公开(公告)日: | 2014-06-11 |
发明(设计)人: | 杨宝琳;姚艳松;任轶;陆翔宇;邵文君;张宏宾;马振强 | 申请(专利权)人: | 国家电网公司;北京市电力公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;张永明 |
地址: | 100031 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 初始化 方法 装置 | ||
技术领域
本发明涉及计算机领域,更具体地,涉及一种内存初始化的方法及装置。
背景技术
memset函数是计算机系统开发过程中最常用最重要的库函数之一,memset函数用于初始化指定字节数的内存,计算机系统开机初始化和软件运行过程中,经常会调用此函数,memset函数使用频率比较频繁。
memset函数原型是void*memset(void*s,int ch,size t n),该函数作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。现有memset函数调用方式比较简单,其通常采用简单的读取以初始化内存,例如,下面给出一种典型的方法:
由上可见,完成一个字节填充某个指定的值需要以下步骤:检查count是否为0,如果为0则函数返回,否则继续;把xs指针指向的地址中的填充指定的值c;xs指针加1;count减1;跳转到步骤1。
通过上述分析可以发现,中央处理器(Central Processing Unit,简称为CPU)填充一个字节需要经过几个指令周期,尤其是有跳转指令的情况下,CPU指令流水线被频繁打断,极大的降低了CPU执行效率。
发明内容
本发明旨在提供一种内存初始化的方法及装置,以至少解决相关技术中,由于典型的字节填充方式执行时需要较长的执行时间,内存初始化较慢,极大的降低了CPU初始化时的执行效率的问题。
根据本发明的一个方面,提供了一种内存初始化的方法,包括:判断待填充的字节个数是否大于预定字节个数,其中,所述预定字节个数为大于1的自然数;如果是,则连续填充所述预定字节个数的字节以初始化内存。
优选地,连续填充所述预定字节个数的字节以初始化内存包括:按次序把初始化指针指向的地址连续填充所述预定字节个数的字节;将计数器减去所述预定字节个数,将所述初始化指针增加所述预定字节个数。
优选地,所述预定字节个数至少包括以下之一:8个字节,16个字节,32个字节。
优选地,所述初始化指针为xs指针。
优选地,判断待填充的字节个数是否大于预定字节个数之后,还包括:在所述待填充的字节个数小于所述预定字节个数的情况下,逐字节填充所述字节。
根据本发明的另一个方面,提供了一种内存初始化的装置,包括:判断模块,用于判断待填充的字节个数是否大于预定字节个数,其中,所述预定字节个数为大于1的自然数;第一填充模块,用于在所述待填充的字节个数大于所述预定字节个数的情况下,连续填充所述预定字节个数的字节以初始化内存。
优选地,所述第一填充模块包括:填充单元,用于按次序把初始化指针指向的地址连续填充所述预定字节个数的字节;计数单元,用于将计数器减去所述预定字节个数,并将所述初始化指针增加所述预定字节个数。
优选地,所述装置还包括:第二填充模块,用于在所述待填充的字节个数小于所述预定字节个数的情况下,逐字节填充所述字节。
本发明在待填充的字节个数大于预定字节个数的情况下,连续填充预定字节个数的字节,以加快初始化速度。通过运用本发明,解决了相关技术中,由于典型的字节填充方式执行时需要较长的执行时间,内存初始化较慢,极大的降低了CPU初始化时的执行效率的问题,在待填充的字节个数大于预定字节个数的情况下,一次填充多个字节,加快了内存初始化的速度,同时也提升了CPU初始化时的执行效率。
附图说明
附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例的内存初始化的方法的流程图;
图2示出了本发明实施例的内存初始化的装置的结构框图一;
图3示出了本发明实施例的内存初始化的装置的第一填充模块的结构框图;
图4示出了本发明实施例的内存初始化的装置的结构框图二;
图5示出了本发明优选实施例的内存初始化的方法的流程图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
基于相关技术中,由于典型的字节填充方式执行时需要较长的执行时间,内存初始化较慢,进而极大的降低了CPU初始化时的执行效率的问题,本发明实施例提供了一种内存初始化的方法,该方法的流程如图1所示,包括步骤S102至步骤S104:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家电网公司;北京市电力公司,未经国家电网公司;北京市电力公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210518676.0/2.html,转载请声明来源钻瓜专利网。