[发明专利]一种基于非连续页的动态内存管理方法无效
申请号: | 200810059862.6 | 申请日: | 2008-02-22 |
公开(公告)号: | CN101231619A | 公开(公告)日: | 2008-07-30 |
发明(设计)人: | 霍明旭;陈金龙;韩雁;张艳;廉玉平 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 杭州求是专利事务所有限公司 | 代理人: | 张法高 |
地址: | 310027浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 连续 动态 内存 管理 方法 | ||
技术领域
本发明属于集成电路设计领域,特别涉及有实时性要求的网络通信芯片中内存分配、存储和管理的方法,具体是一种基于非连续页的动态内存管理方法。
背景技术
根据数据存取的不同模式,管理内存通常有许多不同的方法。当数据的存入和取出的顺序相同时,通常用类似于先进先出(FIFO)的缓冲(Buffer)结构来管理,例如交换机中转发队列就是以不同形式的Buffer来管理。当数据的取出顺序和存入顺序不同时,则在完整的内存存储单元中有可能出现一片空闲单元(Hole),若不能正确处理这些分散在已分配内存中的小片空闲单元,将极大地影响内存的利用率。
软件实现的动态内存方法多采用连续分配的方式,用两个双向链表结构管理空闲的内存块。随着内存分配、回收的不断进行,空闲链表将逐渐增大,为了从这个空闲链表中找到一个合适的内存块的搜索时间也相应的增长,而且该时间与请求的内存块大小有关,因此无法满足实时性的要求。并且,这种软件实现的内存分配方法,为了减少碎片问题,都加入内存的分割(splitting)和合并(coalescing)的功能,但这些方法的引入,也在一定程度上影响到内存管理的时间确定性(Time-BoundedService)。
发明内容
本发明的目的就是克服现有技术的不足,提供一种基于非连续页的动态内存管理方法。
本发明的动态内存管理方法是根据应用环境中数据流的特征将内存单元分割为大小相同的内存页,这些内存页是内存分配的最小单元,也是内存管理的最小单位,该内存管理方法具体包括内存分配、内存回收和地址映射。其中:
内存分配的方法是基于允许逻辑上相连的数据存储在物理上非连续的页中,具体步骤包括:
1、当主机请求内存分配时,内存管理单元比较当前内存的剩余资源(包括空闲页总量和数据标志符DataID)和主机请求的内存大小,若空闲页总量大于主机请求的内存页总量,并且内存管理单元中仍有可用的数据标志符,则继续内存分配,否则结束内存分配。继续内存分配和结束内存分配的信息在一个系统时钟后返回给主机,供主机查询。如果继续内存分配,内存管理模块将从存储DataID信息的二进制向量中,用“首零检测”的方法找到一个可用的标志符,并将该标志符分配给这一块数据。
2、内存分配单元进入实质性分配阶段,内存管理单元关闭对新的内存分配请求的响应。同时,内存管理单元根据请求的页数,从空闲页表管理单元读出可用页的页号,并写入到数据页表管理单元中。空闲页表中的可用页来自计数器或先进先出队列(FIFO),由分配模式寄存器中的值来决定。当该寄存器中的值为1时,空闲页表管理单元从计数器中获得可用页的页号;当该寄存器中的值为0时,从先进先出队列中获得页号。
3、如果分配给主机的所有内存页全部从空闲页表中转移到数据页表中,则本次内存分配完成,内存管理单元重新进入接收内存分配请求的状态,等待下一次请求;如果分配给主机的所有内存页没有完全从空闲页表中转移到数据页表中,则转到2,继续进行内存页转移。
内存回收的方法具体步骤包括:
1、当主机请求内存分配时,内存管理单元比较当前内存的剩余资源和主机请求的内存大小,若空闲页总量大于主机请求的内存页总量,并且内存管理单元中仍有可用的数据标志符,则内存管理单元启动与本次请求对应的倒计时器,计数初值为T0,计时步长为1秒,计时的时间基准由外部输入。
2、如果某次请求在被成功分配一块内存,并且在与该次请求对应的计时器计数到零时,数据所占用的内存资源仍没有被回收,则转4;如果在计时器倒计数到零之前,主机不再使用该内存页中的数据,可以向内存管理单元写入回收内存的指令,要求内存管理单元回收这一块数据所占用的内存页和数据标识符资源。指令中需指出要求回收的数据对应的数据标志符(DataID)。该过程中,内存管理单元停止倒计时器并将其复位到T0。
3、当内存管理单元的内部寄存器接收到主机发送的“回收内存”的指令时,将指令中数据标志符对应的所有内存页依次从数据页表中读出,并将其写入到空闲页表中,然后转5。其中读出和写入的次数与该数据标志符对应的数据所占用的内存页的总量相同。
4、当倒计时器计数到零时,与该计时器对应的数据所占用的内存资源仍没有被回收,则在数据页表和空闲页表都空闲时,将超时的数据占用的内存页从数据页表中依次读出并写入空闲页表中,同时在所有内存页回收后,将该数据占用的数据标志符对应的二进制向量位重新复位,即回收数据表示符(DataID)资源。
5、内存回收结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810059862.6/2.html,转载请声明来源钻瓜专利网。