[发明专利]一种高效的内存访问方法有效
申请号: | 200910109444.8 | 申请日: | 2009-08-18 |
公开(公告)号: | CN101630276A | 公开(公告)日: | 2010-01-20 |
发明(设计)人: | 刘骁 | 申请(专利权)人: | 深圳市融创天下科技发展有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F12/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057广东省深圳市南山区科技*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 高效 内存 访问 方法 | ||
1.一种高效的内存池访问方法,其特征在于,该方法具体步骤如下:
S1:建立内存池,所述内存池由若干内存块组成,启动一个具多线程的应用 程序,首先保证占用内存的两线程读写方向相同;
S2:当第一线程去访问第二线程的当前块内写指针时,一定要确保第一线程 对当前块内写指针的改变在汇编层上是最后一条指令,也就是此指令执行后, 后面的指令将不会在有任何与内存块相关的写操作了,即要保证第一线程写完 数据后,再让第二线程来读取该数据;
S3:当第一线程访问第二线程的读指针时,第二线程一定要确保第二线程对 当前块内读指针的改变在汇编层上是最后一条指令,也就是此指令执行后,后 面的指令将不会在有任何与内存块相关的读操作了。
2.如权利要求1所述的高效的内存池访问方法,其特征在于,所述“保证 占用内存的两线程读写方向相同”具体为:
建立循环链表,并确定所述循环链表的指针方向,保证占用内存的两线程 读写方向相同。
3.如权利要求1所述的高效的内存池访问方法,其特征在于,所述步骤S2 与S3中汇编层上是最后一条指令即为原子操作,即在步骤S2可以保证写操作 不会被中断,以及可以保证在步骤S3中的读操作不会被中断。
4.如权利要求2所述的高效的内存池访问方法,其特征在于,所述步骤S3 中确保第一线程的写指针不同于第二线程的读指针所在的内存块。
5.如权利要求2所述的高效的内存池访问方法,其特征在于,所述步骤S3 中第二线程至少读完第一个内存块后,所述第二线程才开始进行写操作。
6.如权利要求5所述的高效的内存池访问方法,其特征在于,步骤S3中 若判断出第一线程的写指针将写入第二线程的读指针所在的内存块时,则申请 一个新空闲内存块插入于第一线程的写指针所在的内存块以及与该内存块相邻 的下一内存块之间。
7.如权利要求1所述的高效的内存池访问方法,其特征在于,每一内存块 大小为64kb大小。
8.如权利要求1所述的高效的内存池访问方法,其特征在于,CPU进行循 环访问内存或缓存的拷贝操作,保证地址边界对齐,能发挥CPU数据访问的最 大潜力,从而提高块拷贝性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市融创天下科技发展有限公司,未经深圳市融创天下科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910109444.8/1.html,转载请声明来源钻瓜专利网。