CN102063378A - 一种在内核中高速分配连续内存的方法 - Google Patents

一种在内核中高速分配连续内存的方法 Download PDF

Info

Publication number
CN102063378A
CN102063378A CN 201010598005 CN201010598005A CN102063378A CN 102063378 A CN102063378 A CN 102063378A CN 201010598005 CN201010598005 CN 201010598005 CN 201010598005 A CN201010598005 A CN 201010598005A CN 102063378 A CN102063378 A CN 102063378A
Authority
CN
China
Prior art keywords
bitmap
memory
kernel
high speed
contiguous memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201010598005
Other languages
English (en)
Other versions
CN102063378B (zh
Inventor
李锋伟
刘兴奎
刘朝辉
刘灿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke controlled Information Industry Co., Ltd.
Original Assignee
TIANJIN SUGON COMPUTER INDUSTRY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIANJIN SUGON COMPUTER INDUSTRY Co Ltd filed Critical TIANJIN SUGON COMPUTER INDUSTRY Co Ltd
Priority to CN 201010598005 priority Critical patent/CN102063378B/zh
Publication of CN102063378A publication Critical patent/CN102063378A/zh
Application granted granted Critical
Publication of CN102063378B publication Critical patent/CN102063378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

本发明提供了一种在内核中高速分配连续内存的方法,在32位***上作地址划分,使一次申请的最小单元为4MB;每一个单元使用一个位图表示是否已经被申请;***分配时计算所申请的内存需要的最小单元个数;查找内存模块位图,若出现满足个数的连续个最小单元位图为1,则分配;若不成功,返回继续申请。本发明利用最少的存储资源在内核态实现了对连续内存的申请管理,提高了效率,同时本发明实现结构简单清晰,有较好的可扩展性。

Description

一种在内核中高速分配连续内存的方法 
技术领域
本发明涉及数据存储领域,具体涉及一种在内核中告诉分配连续内存的方法。 
背景技术
在Linux内核态申请连续空间,根据内存管理算法,一次最多申请2的order次方个页面的空间。如果要申请连续大内存,需要自己的管理结构。一种管理策略就是将计算机的所有内存块全部申请下来,然后对这些内存块进行排序。找到合适的内存块,释放其他内存块。另外一种管理结构是采用链表管理,把每次在内核态申请到的空间都串到链上,同时管理这些空间。如果发现申请到的空间和链表上的空间连续就将合并空间,查看合并后的空间是否满足要求,如果满足就申请下该块。上述两种策略都需要消耗大量的内存空间,效率低下。 
采用位图策略,可以有效减小内存空间。例如,如果要分配4G的连续内存,在32位机器上只需要32个整型变量就可以维护管理这个结构,大大节省了内存空间。另外,它的操作更是简单,只需要简单的6条位操作语句,再加上一个判断就可以完成内核态连续大内存的申请。 
发明内容
本发明目的是采用位图管理实现了一个在内核空间申请连续大内存的高效的方法。
一种在内核中高速分配连续内存的方法,步骤如下: 
步骤1:在32位***上作地址划分,使一次申请的最小单元为4MB; 
步骤2:每一个单元使用一个位图表示是否已经被申请; 
步骤3:***分配时计算所申请的内存需要的最小单元个数; 
步骤4:查找内存模块位图,若出现满足个数的连续个最小单元位图为1,则分配;若不成功,返回继续申请。 
本发明的一种优选技术方案在于:所述步骤1地址划分方法为选取该32位地址的高5位用作32个整型块的寻址,用次高5位用作整型变量内部所对应位的寻址,用其他22位作为4M空间的首地址。 
本发明的另一种优选技术方案在于:所述位图为1表示未被占用,若为0表示已经占用。 
本发明利用最少的存储资源在内核态实现了对连续内存的申请管理,提高了效率,同时本发明实现结构简单清晰,有较好的可扩展性。 
附图说明
图1是本发明原理示意图 
具体实施方案
在32位***上,在内核态一次申请4M连续内存(order=10),返回一个32位的地址。可以选取该32位地址的高5位(31---27位)用作32个整型块的寻址,用次高5位(26---22位)用作整型变量内部所对应位的寻址,用其他22位(21---0)作为4M空间的首地址。上图是一个内存的片段,每位代表一个4M的空间。如果要在内核态申请连续的N个4M的空间,只需要在内存块中出现连续的N个1即可。 
例如,某一时刻申请一个4M的空间,返回地址为0x12345678,解析高5位00010,次高5位01000,可以确定在整个地址空间偏移为00010的32位中的01000位置1,如上图中b所示。现在需要做的就是判断新置的位是否可以和该位的前面或后面相连构成满足需要的连续的内存块数的要求,如上图所示是32个整型变量里面的3个,某时刻申请了一个地址,经计算填到了a里面的第8位,b和c里面的位用x来表示(x等于0或1)。利用下面的6步操作,再加 上一个判断就可以判断是否在a中的某位置1,就可以和b中的位构成连续的符合要求的内存。 
下面是具体的操作步骤: 
(1)tmpb=~b; 
(2)tmp=tmpb &(tmpb-1); 
(3)tmp=tmp^tmpb; 
(4)tmp-=-1; 
(5)tmpa=a>>(32-shift_bit); 
(6)tmpc=tmp|tmpa; 
(7)if(tmpc>=(1<<shift_bit)-1) 
       成功找到; 
   else 
       继续申请,返回第一步。 

Claims (3)

1.一种在内核中高速分配连续内存的方法,其特征在于:步骤如下:
步骤1:在32位***上作地址划分,使一次申请的最小单元为4MB;
步骤2:每一个单元使用一个位图表示是否已经被申请;
步骤3:***分配时计算所申请的内存需要的最小单元个数;
步骤4:查找内存模块位图,若出现满足个数的连续个最小单元位图为1,则分配;若不成功,返回继续申请。
2.如权利要求1所述一种在内核中高速分配连续内存的方法,其特征在于:所述步骤1地址划分方法为选取该32位地址的高5位用作32个整型块的寻址,用次高5位用作整型变量内部所对应位的寻址,用其他22位作为4M空间的首地址。
3.如权利要求1所述一种在内核中高速分配连续内存的方法,其特征在于:所述位图为1表示未被占用,若为0表示已经占用。
CN 201010598005 2010-12-17 2010-12-17 一种在内核中高速分配连续内存的方法 Active CN102063378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010598005 CN102063378B (zh) 2010-12-17 2010-12-17 一种在内核中高速分配连续内存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010598005 CN102063378B (zh) 2010-12-17 2010-12-17 一种在内核中高速分配连续内存的方法

Publications (2)

Publication Number Publication Date
CN102063378A true CN102063378A (zh) 2011-05-18
CN102063378B CN102063378B (zh) 2013-02-13

Family

ID=43998663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010598005 Active CN102063378B (zh) 2010-12-17 2010-12-17 一种在内核中高速分配连续内存的方法

Country Status (1)

Country Link
CN (1) CN102063378B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541758A (zh) * 2011-12-22 2012-07-04 深圳市融创天下科技股份有限公司 一种内存分配与释放的方法、***和终端设备
CN103440203A (zh) * 2013-08-26 2013-12-11 上海斐讯数据通信技术有限公司 一种共享内存分配方法
CN106227593A (zh) * 2016-07-06 2016-12-14 杭州迪普科技有限公司 一种申请超大块连续内存的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111448A1 (en) * 1999-08-19 2004-06-10 Garthwaite Alexander T. Dynamic feedback for determining collection-set size
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
CN1963788A (zh) * 2005-11-08 2007-05-16 中兴通讯股份有限公司 一种内存管理方法
CN101093455A (zh) * 2006-06-21 2007-12-26 中兴通讯股份有限公司 一种嵌入式操作***的内存池分配方法
CN101344861A (zh) * 2007-07-10 2009-01-14 凤凰微电子(中国)有限公司 一种智能卡内存管理方法
CN101676906A (zh) * 2008-09-18 2010-03-24 中兴通讯股份有限公司 一种利用位图对内存数据库空间进行管理的方法
CN101753935A (zh) * 2008-12-09 2010-06-23 深圳市锐明视讯技术有限公司 一种数据存储设备长时间预录的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111448A1 (en) * 1999-08-19 2004-06-10 Garthwaite Alexander T. Dynamic feedback for determining collection-set size
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
CN1963788A (zh) * 2005-11-08 2007-05-16 中兴通讯股份有限公司 一种内存管理方法
CN101093455A (zh) * 2006-06-21 2007-12-26 中兴通讯股份有限公司 一种嵌入式操作***的内存池分配方法
CN101344861A (zh) * 2007-07-10 2009-01-14 凤凰微电子(中国)有限公司 一种智能卡内存管理方法
CN101676906A (zh) * 2008-09-18 2010-03-24 中兴通讯股份有限公司 一种利用位图对内存数据库空间进行管理的方法
CN101753935A (zh) * 2008-12-09 2010-06-23 深圳市锐明视讯技术有限公司 一种数据存储设备长时间预录的方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541758A (zh) * 2011-12-22 2012-07-04 深圳市融创天下科技股份有限公司 一种内存分配与释放的方法、***和终端设备
CN103440203A (zh) * 2013-08-26 2013-12-11 上海斐讯数据通信技术有限公司 一种共享内存分配方法
CN103440203B (zh) * 2013-08-26 2017-07-25 上海斐讯数据通信技术有限公司 一种共享内存分配方法
CN106227593A (zh) * 2016-07-06 2016-12-14 杭州迪普科技有限公司 一种申请超大块连续内存的方法及装置

Also Published As

Publication number Publication date
CN102063378B (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
Dai et al. ForeGraph: Exploring large-scale graph processing on multi-FPGA architecture
CN102243598B (zh) 分布式数据仓库中的任务调度方法及***
CN104077233A (zh) 单通道卷积层及多通道卷积层处理方法和装置
CN100382048C (zh) 一种内存管理方法
CN103106222B (zh) 定时器的处理方法及装置
CN109154917A (zh) 存储***和固态硬盘
CN102063378B (zh) 一种在内核中高速分配连续内存的方法
WO2004012080A3 (en) Method for dynamically allocating and managing resources in a computerized system having multiple consumers
CN103064795B (zh) 一种存储设备的控制方法及相关装置
CN105659208A (zh) 处理多个线程的数据处理装置及方法
CN104598316B (zh) 一种存储资源分配方法及装置
CN102541851A (zh) 页面模块化生成方法及***
CN103246941A (zh) 一种出口集装箱码头堆存空间调度方法
CN102053916B (zh) 一种分配内核大片连续内存的方法
CN103425746A (zh) 基于fpga的实时金融指数行情并行计算方法
CN105516325A (zh) 一种根据应用负载进行弹性扩容和流量分发扩展的云负载平衡手段
CN104615498A (zh) 一种基于任务迁移的集群***动态负载均衡方法
CN1679005A (zh) 动态存储器管理
CN105117285A (zh) 一种基于移动虚拟化***的非易失性存储器调度优化方法
CN111083189B (zh) 用于在运行时处理数据倾斜的***和方法
CN106325995A (zh) 一种gpu资源的分配方法及***
CN103488577A (zh) 一种基于用途编号的用户程序内存分配及批量回收的方法及装置
CN111415003A (zh) 面向神经网络加速芯片的三维堆叠存储优化方法及装置
CN113108442B (zh) 能力分配方法和装置、多联机空调和存储介质
CN106156049A (zh) 一种数据读取的方法和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180425

Address after: 215399 Room 405, North Tower, 1699 complex building, South Yushan Road, Yushan Town, Kunshan, Jiangsu

Patentee after: Zhongke controlled Information Industry Co., Ltd.

Address before: 300384 Xiqing District, Tianjin Huayuan Industrial Zone (outside the ring) 15 1-3, hahihuayu street.

Patentee before: Sugon Information Industry Co., Ltd.