[发明专利]嵌入式系统中连续物理内存分配方法和装置无效
| 申请号: | 200910192199.1 | 申请日: | 2009-09-08 |
| 公开(公告)号: | CN101706754A | 公开(公告)日: | 2010-05-12 |
| 发明(设计)人: | 施金前;蔡怀琳 | 申请(专利权)人: | 厦门敏讯信息技术股份有限公司 |
| 主分类号: | G06F12/06 | 分类号: | G06F12/06;G06F9/445 |
| 代理公司: | 厦门市诚得知识产权代理事务所 35209 | 代理人: | 黄国强 |
| 地址: | 361009 福建省*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 嵌入式 系统 连续 物理 内存 分配 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别是嵌入式系统中连续物理内存分配方法和装置。
背景技术
在计算机技术中,内存分配,包括连续物理内存分配技术对于计算机性能的影响非常关键。其中,在嵌入式系统驱动上存在很多必须分配连续物理内存的场合,如:DMA内存分配或分配连续内存以提高系统性能等。而如果分配不到连续物理内存,可能造成系统异常或者系统性能大大降低。但是,对于嵌入式计算机系统,在其运行一小段时间后,则很难在遍布内存碎片的内存中找到一块指定大小的连续物理内存。
为确保DMA连续内存分配成功,一种现有技术是采用修改嵌入式系统内核的内存管理模块来解决这个问题。比如,2009年7月1日公开的中国发明专利申请第200710306110.0号。名称为“Linux系统平台上指定地址范围分配物理内存的方法”的该专利申请公开了分配指定地址范围和指定大小的物理内存的方法,但由于必须修改嵌入式系统内核的内存管理模块,存在开发时间较长、较复杂的问题,且可能降低系统性能;又比如2005年7月6日公开的中国发明专利第200310110344.X号提出了一种新的内存管理方案,可减小内存碎片的产生,提高大内存申请的成功率,但同样也存在开发时间较长、较复杂和不能确保分配大的物理内存成功的缺陷;又比如2009年3月11日公开的中国发明专利申请第200710121449.3号提出一种嵌入式系统内存管理的方法,以回收内存碎片,提高大内存申请的成功率,但也同样存在开发时间长、较复杂和不能确保分配大的物理内存成功的缺陷。
而在非DMA内存分配的场合,在分配连续物理内存失败后,现有技术提出采用非物理连续的内存区分配方法,但这样会造成计算机性能的略微下降。因为采用非物理连续的内存区分配会大大降低页表缓冲(TLB)命中的几率,增加线性地址向物理地址转换的时间。
发明内容
本发明主要解决的技术问题是提供一种嵌入式系统中连续物理内存分配方法和装置,能够确保嵌入式系统驱动中连续物理内存分配成功,并且避免由于申请连续物理内存失败而出现系统异常的情况。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种嵌入式系统中连续物理内存分配方法,包括:在所述嵌入式系统的引导加载程序中,将全部物理内存数量与需分配的连续物理内存数量之差作为参数值设置内核管理内存数量的内核启动参数;在所述嵌入式系统的驱动中按所述需分配的连续物理内存数量分配所述连续物理内存。
其中,所述嵌入式系统是Linux嵌入式系统;所述设置内核管理内存数量的内核启动参数的步骤包括:在Linux嵌入式系统的引导加载程序中设置的内核启动参数中加入如下信息:mem=C,其中所述C为全部物理内存数量与需分配的连续物理内存数量之差.
其中,在所述嵌入式系统的驱动中按所述需分配的连续物理内存数量分配所述连续物理内存的步骤包括:在所述嵌入式系统的驱动中按所述需分配的连续物理内存数量指定所述连续物理内存的物理地址;在所述嵌入式系统的驱动中重映射所述连续物理内存的物理地址为虚拟地址。
其中,在所述嵌入式系统的驱动中按所述需分配的连续物理内存数量指定所述连续物理内存的物理地址的步骤包括:在所述嵌入式系统的驱动中通过如下语句来指定所述连续物理内存的物理地址:
#define REAL_MEM_SIZE 0x2000000;
u8 *pp_virt_buf=NULL;
dma_addr_t pp_phys_buf;
unsigned int t_size=0x100000;
pp_phys_buf=PHYS_OFFSET+(REAL_MEM_SIZE-t_size);
在所述嵌入式系统的驱动中重映射所述连续物理内存的物理地址为虚拟地址的步骤包括:在所述嵌入式系统的驱动中通过如下语句来重映射所述连续物理内存的物理地址为虚拟地址:
pp_virt_buf=ioremap_nocache(pp_phys_buf,t_size);
其中,在分配所述连续物理内存的步骤之后,包括:通过所述引导加载程序的命令修改所述设置内核管理内存数量的内核启动参数的参数值,以改变所述需分配的连续物理内存数量。
其中,在分配所述连续物理内存的步骤之后,包括:通过所述引导加载程序的命令去掉所述设置内核管理内存数量的内核启动参数,以释放所述分配的连续物理内存时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门敏讯信息技术股份有限公司,未经厦门敏讯信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910192199.1/2.html,转载请声明来源钻瓜专利网。





