[发明专利]用于多线程访问的软件定义FIFO缓冲器有效
| 申请号: | 201680070274.5 | 申请日: | 2016-12-12 |
| 公开(公告)号: | CN108292162B | 公开(公告)日: | 2021-08-31 |
| 发明(设计)人: | 曼基特·洛 | 申请(专利权)人: | 图芯芯片技术有限公司 |
| 主分类号: | G06F3/00 | 分类号: | G06F3/00 |
| 代理公司: | 上海光华专利事务所(普通合伙) 31219 | 代理人: | 余明伟 |
| 地址: | 美国加利*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 多线程 访问 软件 定义 fifo 缓冲器 | ||
1.一种实施FIFO缓冲器的方法,包括:
提供存储可执行数据的存储器装置;
提供处理装置,所述处理装置连接到所述存储器装置并且可用于检索和执行所述可执行数据;
通过所述处理装置从应用程序的线程接收缓冲器初始化指令,
响应于所述缓冲器初始化指令:
通过所述处理装置将所述存储器装置的一部分分配为缓冲器;
通过所述处理装置初始化硬件缓冲器控制器的状态以引用所述存储器装置分配为缓冲器的所述一部分;
通过所述处理装置返回硬件缓冲器控制器的引用至应用程序的线程,存储器使用所述引用访问硬件缓冲器不包括对所述存储器装置的任何地址的任何引用;
通过所述处理装置执行应用程序,执行所述应用程序包含执行从所述应用程序的线程访问所述硬件缓冲器控制器的请求,所述请求仅引用所述硬件缓冲器控制器并且不包含所述存储器装置的一部分内的任何地址;
响应于所述请求,通过所述处理装置将所述请求输入到所述硬件缓冲器控制器;
对于每个请求,由所述硬件缓冲器控制器通过以下操作处理:
基于所述硬件缓冲器控制器的所述状态产生所述存储器装置的一部分内的地址;
将包含所述地址的存储器访问指令输出到所述存储器装置;以及
更新所述硬件缓冲器控制器的所述状态。
2.根据权利要求1所述的方法,其中所述硬件缓冲器控制器实施先进先出(FIFO)缓冲器。
3.根据权利要求2所述的方法,其中所述硬件缓冲器控制器的所述状态包含读取指针和写入指针;
其中更新所述硬件缓冲器控制器的所述状态包括:对于所述请求中的每个写入请求,使所述写入指针递增;
其中更新所述硬件缓冲器控制器的所述状态包括:对于所述请求中的每个读取请求,使所述读取指针递增。
4.根据权利要求3所述的方法,
其中使所述写入指针递增包括:
确定在时钟循环期间接收到的多个写入请求的数目并使所述写入指针递增所述多个写入请求的所述数目;
其中使所述读取指针递增包括:
确定在所述时钟循环期间接收到的多个读取请求的数目并使所述读取指针递增所述多个读取请求的所述数目。
5.根据权利要求3所述的方法,
其中基于所述硬件缓冲器控制器的所述状态产生所述存储器装置的一部分内的地址包括:
对于所述请求中的每个写入请求,输出所述写入指针的当前值;
其中基于所述硬件缓冲器控制器的所述状态产生所述存储器装置的一部分内的所述地址包括:
对于所述请求中的每个读取请求,输出所述读取指针的当前值。
6.根据权利要求5所述的方法,其进一步包括:
通过处理装置计算所述写入请求的数量与所述读取请求的数量之间的差值;
通过所述处理装置确定所述差值小于第一阈值且非零;
响应于确定所述差值小于第一阈值且非零,通过所述处理装置输出指示所述缓冲器接近空的事件;
响应于指示所述缓冲器接近空的所述事件,通过所述处理装置阻止由所述处理装置执行的一个或多个执行线程产生读取请求。
7.根据权利要求5所述的方法,其进一步包括:
通过所述硬件缓冲器控制器计算所述写入请求的数量与所述读取请求的数量之间的差;
通过所述硬件缓冲器控制器确定所述差值大于第一阈值;
响应于确定所述差值大于第一阈值,通过所述硬件缓冲器控制器输出指示所述缓冲器接近满的事件;
响应于指示所述缓冲器接近满的所述事件,通过所述处理装置阻止由所述处理装置执行的一个或多个执行线程产生写入请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于图芯芯片技术有限公司,未经图芯芯片技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680070274.5/1.html,转载请声明来源钻瓜专利网。





