[发明专利]一种硬件管理共享内存的处理方法及装置有效
申请号: | 202110597359.1 | 申请日: | 2021-05-31 |
公开(公告)号: | CN113467930B | 公开(公告)日: | 2023-04-14 |
发明(设计)人: | 周侨;高鹏;尤凯迪 | 申请(专利权)人: | 翱捷科技股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54;G06F12/02 |
代理公司: | 上海双霆知识产权代理事务所(普通合伙) 31415 | 代理人: | 殷晓雪 |
地址: | 201203 上海市浦东新区中国*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 硬件 管理 共享 内存 处理 方法 装置 | ||
本申请公开了一种共享内存的处理方法。将共享内存按照固定的块大小划分为多个内存块。内存分配控制器为每一个处理器、或者为同一个处理器的不同模块提供一个专有的寄存器,内存分配控制器实现这些寄存器之间互斥。当有处理器需要使用共享内存时,处理器读取内存分配控制器中对应的专有寄存器,该寄存器返回一个可用内存块的起始地址信息,处理器由此被分配一个可用内存块。当有处理器使用完某个数据包需要释放该数据包时,将需要释放的数据包交给内存释放控制器统一进行数据包的释放;内存释放控制器将该内存块的ref‑cnt值减1。当某个内存块的ref‑cnt值减为0时,内存释放控制器才将这个内存块释放。本申请解决了多个处理器使用共享内存时互相竞争的问题。
技术领域
本申请涉及一种硬件管理共享内存的处理方法。
背景技术
在手机等智能设备中通常存在多个处理器,如CP(communication processor,通信处理器)、AP(application processor,应用处理器)、DSP(数字信号处理器)、Wi-Fi控制单元等。在应用中存在一个处理器接收的数据包交给另一个处理器来处理的场景——例如CP接收的数据包交给AP处理,或者通过Wi-Fi转发给其他设备处理——这就涉及共享内存使用和释放的问题。例如某应用通过手机流量播放视频,下行方向由CP分配内存空间从移动通讯网络中接收对方的视频内容。接收完成后,CP将该内存空间交给AP播放出来。播放完成后,由AP直接或者间接释放该内存空间。上行方向由AP分配内存空间接收本地摄像头的视频内容,发送给CP。然后CP通过移动通讯网络传递给对端显示,CP发送完成后直接或者间接释放该内存空间。在该示例性的使用场景中,内存存在多个使用者CP和AP,在分配和释放内存的时候,就需要采取方法来管理内存,避免多方竞争使用同一块内存空间,或者某一方意外地破坏其他使用者正在使用的内存空间。通常的方法是采用各种处理器之间的软件锁,或者处理器以及硬件提供的硬件互锁机制,来避免竞争,达到满足各方内存使用需求,妥善管理内存的目的。
但是在当前5G以及高速率网络应用中,数据包的传输速率非常快,对每个数据包的处理时间要求非常短,上述利用软件、硬件来达成互斥锁的机制,将对数据包的处理带来非常大的延迟,以及占用非常多的CPU资源,限制了数据包吞吐率;或者要求更高处理能力的处理器来操作,增加系统功耗和成本。
发明内容
本申请所要解决的技术问题是提供一种硬件管理共享内存的处理方法,不再使用互斥锁的机制,因而不会带来大延迟,也不会占用过多的CPU资源。所述硬件包括内存分配控制器和内存释放控制器。
为解决上述技术问题,本申请提出了一种硬件管理共享内存的处理方法,包括如下步骤。步骤S1:将共享内存按照固定的块大小划分为多个内存块;每个内存块中实际存储的数据包的数量记为ref-cnt;ref-cnt值为0的内存块是可用内存块;内存分配控制器提供可用内存块信息给各处理器;内存分配控制器为每一个处理器、或者为同一个处理器的不同模块提供一个专有的寄存器,由内存分配控制器实现这些寄存器之间的互斥。步骤S2:当有处理器需要使用共享内存时,处理器读取内存分配控制器中对应的专有寄存器,该寄存器返回一个可用内存块的起始地址信息,处理器由此被分配一个可用内存块;处理器记录分配的每个内存块的地址,以及分配的每个内存块的ref-cnt值。步骤S3:当有处理器使用完某个数据包需要释放该数据包时,处理器将需要释放的数据包交给内存释放控制器统一进行数据包的释放;内存释放控制器通过该需要释放的数据包的起始地址计算出其所属内存块,并将该内存块的ref-cnt值减1。步骤S4:当某个内存块的ref-cnt值减为0时,内存释放控制器才将这个内存块释放。
进一步地,所述步骤S1中,在内存中或内存释放控制器的内部缓存中存储:共享内存的起始地址及大小、内存块的大小。
进一步地,所述步骤S1中,所有可用内存块的起始地址都记录在可用内存块表中。所述步骤S2中,内存分配控制器将已分配的内存块从可用内存块表中删除。所述步骤S4中,内存释放控制器将已释放的内存块的起始地址写入可用内存块表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于翱捷科技股份有限公司,未经翱捷科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110597359.1/2.html,转载请声明来源钻瓜专利网。