[发明专利]一种硬件管理共享内存的处理方法及装置有效
申请号: | 202110597359.1 | 申请日: | 2021-05-31 |
公开(公告)号: | CN113467930B | 公开(公告)日: | 2023-04-14 |
发明(设计)人: | 周侨;高鹏;尤凯迪 | 申请(专利权)人: | 翱捷科技股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54;G06F12/02 |
代理公司: | 上海双霆知识产权代理事务所(普通合伙) 31415 | 代理人: | 殷晓雪 |
地址: | 201203 上海市浦东新区中国*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 硬件 管理 共享 内存 处理 方法 装置 | ||
1.一种硬件管理共享内存的处理方法,其特征是,包括如下步骤;
步骤S1:将共享内存按照固定的块大小划分为多个内存块;每个内存块中实际存储的数据包的数量记为ref-cnt;ref-cnt值为0的内存块是可用内存块;内存分配控制器提供可用内存块信息给各处理器;内存分配控制器为每一个处理器、或者为同一个处理器的不同模块提供一个专有的寄存器,由内存分配控制器实现这些寄存器之间的互斥;
步骤S2:当有处理器需要使用共享内存时,处理器读取内存分配控制器中对应的专有寄存器,该寄存器返回一个可用内存块的起始地址信息,处理器由此被分配一个可用内存块;处理器记录分配的每个内存块的地址,以及分配的每个内存块的ref-cnt值;
步骤S3:当有处理器使用完某个数据包需要释放该数据包时,处理器将需要释放的数据包交给内存释放控制器统一进行数据包的释放;内存释放控制器通过该需要释放的数据包的起始地址计算出其所属内存块,并将该内存块的ref-cnt值减1;
步骤S4:当某个内存块的ref-cnt值减为0时,内存释放控制器才将这个内存块释放。
2.根据权利要求1所述的硬件管理共享内存的处理方法,其特征是,所述步骤S1中,在内存中或内存释放控制器的内部缓存中存储:共享内存的起始地址及大小、内存块的大小。
3.根据权利要求1所述的硬件管理共享内存的处理方法,其特征是,所述步骤S1中,所有可用内存块的起始地址都记录在可用内存块表中;
所述步骤S2中,内存分配控制器将已分配的内存块从可用内存块表中删除;
所述步骤S4中,内存释放控制器将已释放的内存块的起始地址写入可用内存块表中。
4.根据权利要求1所述的硬件管理共享内存的处理方法,其特征是,在内存中或内存释放控制器的内部缓存中存储每个内存块的ref-cnt值。
5.根据权利要求1所述的硬件管理共享内存的处理方法,其特征是,所述步骤S3中,处理器释放数据包时,将该数据包的起始地址信息告诉内存释放控制器,由内存释放控制器完成释放该数据包。
6.根据权利要求5所述的硬件管理共享内存的处理方法,其特征是,在内存中或内存释放控制器的内部缓存中设置表三,表三用来存储由处理器填入的需要释放的数据包的起始地址;或者表三用来存储:指向需要释放的数据包起始地址的指针、需要释放的数据包的个数;内存释放控制器确定需要释放的数据包,将表三中需要释放的数据包对应的内容读入到内部缓存进行处理并释放需要释放的数据包占用的内存块。
7.根据权利要求6所述的硬件管理共享内存的处理方法,其特征是,每个处理器对应一个表三,或者多个处理器共用一个表三。
8.根据权利要求1所述的硬件管理共享内存的处理方法,其特征是,在内存释放控制器的内部缓存中存储:待释放的内存块的地址、待释放的内存块的ref-cnt值。
9.根据权利要求1所述的硬件管理共享内存的处理方法,其特征是,在内存中或内存释放控制器的内部缓存中存储内存释放控制器输出异常信息;各处理器负责处理内存释放控制器输出的异常信息。
10.一种硬件管理共享内存的处理装置,其特征是,包括配置单元、内存分配单元、数据包释放单元、内存释放单元;
所述配置单元用来将共享内存按照固定的块大小划分为多个内存块;每个内存块中实际存储的数据包的数量记为ref-cnt;ref-cnt值为0的内存块是可用内存块;内存分配控制器提供可用内存块信息给各处理器;内存分配控制器为每一个处理器、或者为同一个处理器的不同模块提供一个专有的寄存器,由内存分配控制器实现这些寄存器之间的互斥;
所述内存分配单元用来当有处理器需要使用共享内存时,读取内存分配控制器中对应的专有寄存器,该寄存器返回一个可用内存块的起始地址信息,处理器由此被分配一个可用内存块;处理器还记录分配的每个内存块的地址,以及分配的每个内存块的ref-cnt值;
所述数据包释放单元用来当有处理器使用完某个数据包需要释放该数据包时,处理器将需要释放的数据包交给内存释放控制器统一进行数据包的释放;内存释放控制器通过该数据包的起始地址计算出其所属内存块,并将该内存块的ref-cnt值减1;
所述内存释放单元用来当某个内存块的ref-cnt值减为0时,才将这个内存块释放。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于翱捷科技股份有限公司,未经翱捷科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110597359.1/1.html,转载请声明来源钻瓜专利网。