[发明专利]多通道先进先出缓存队列控制器及访问方法有效
申请号: | 201310388500.2 | 申请日: | 2013-08-30 |
公开(公告)号: | CN103455442A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 郑述乾;李天林;区树雄 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 潘珺 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通道 先进 缓存 队列 控制器 访问 方法 | ||
技术领域
本发明涉及数据传送技术领域,尤其涉及多通道先进先出缓存队列(first in first out queue,FIFO queue)控制器及访问方法。
背景技术
在传送领域,随着传输带宽越来越大(例如100G、200G或者400G),通讯设备中的现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)在处理多业务时、往往把多路的低带宽业务变换成统一位宽的时分信号(如640bit)。多业务对应的带宽可能随着时间变化。在不同业务处理之间进行适配的时候,需要一个FIFO queue对业务的数据进行缓存。在大位宽的场景下,可能非常消耗FIFO queue的资源。具体来说,可能非常消耗FIFO queue对应的随机存储器(Random Access Memory,RAM)资源,查找表(Look Up Table,LUT)资源以及布线资源。
一个现有的解决方案(简称方案1)如图1所示。方案1将多个大位宽的FIFO实体,包封在一起作为一个多业务通道FIFO实体来使用。在数据输入侧,进来的数据流按照业务的通道号分发到对应的FIFO实体;在数据输出侧,根据业务的通道号,从不同的FIFO实体中读取数据。
上述方案1中,多业务通道FIFO queue中不同业务通道对应的RAM缓存和控制电路都不能共享,多业务通道FIFO queue所使用的RAM的大小必须按照最大业务带宽颗粒的大小来设计,当业务通道数量很多(例如>=64)时,RAM的资源耗费相当巨大,例如一个640bit位宽,80个业务通道,每业务通道最深128个单元的多业务通道FIFO,在FPGA上设计需要近400块RAM,而一片较大的FPGA上总的RAM资源也就2000多块。并且,在实际应用场景中,只有非常少数的几个业务通道会有大带宽的业务,其他业务通道都是空闲的(总的带宽不变,某些业务通道带宽大,其他的业务通道必然带宽小或者没有),这样就造成了RAM资源的浪费。
另外一种解决方案(下面简述方案2)如图2所示,该方案2中,所有业务通道共享一块大的缓存,每个业务通道按照业务颗粒大小分配空间,每个业务通道的空间通过一个循环链表组织起来。每个业务通道都有自己的链表指针,每个业务通道都通过当前的读写指针进行缓存的读写操作。
该方案2中所有业务通道的空间通过循环链表形式组织起来,当链表的指针发生异常错误时,会导致无法恢复的错误,可靠性较差。
发明内容
本发明实施例提供了一种多通道先进先出缓存队列控制器及多通道先进先出缓存队列访问方法,有助于减少对多个业务进行处理时,对FIFO queue的资源占用较多的问题。
第一方面,提供了一种多通道FIFO queue控制器,包括:地址确定电路和控制电路;
所述地址确定电路用于:
根据业务的标识确定在数据缓存中的待访问的块的物理地址,所述数据缓存包含多个块,每个块包含m个存储单元,m为正整数;
根据所述待访问的块的物理地址和待访问的数据在所述待访问的块内的地址,确定所述待访问的数据在所述数据缓存中的物理地址;
所述控制电路用于:
根据所述地址确定电路确定的所述待访问的数据在所述数据缓存中的物理地址访问所述待访问的数据。
第一方面的第一种可能的实现方式中,所述地址确定电路具体用于:
根据所述业务的标识,确定所述待访问的块的逻辑地址和所述待访问的数据在所述待访问的块内的地址;
根据所述待访问的块的逻辑地址,以及所述待访问的块的逻辑地址与所述待访问的块的物理地址之间的映射关系,确定所述待访问的块的物理地址;
根据所述待访问的块的物理地址和所述待访问的数据在所述待访问的块内的地址,确定所述待访问的数据在所述数据缓存中的物理地址。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述地址确定电路具体用于:
根据所述业务的标识查询逻辑地址表,获取所述待访问的数据的逻辑地址;
根据所述待访问的数据的逻辑地址得到所述待访问的块的第一逻辑地址logic_blk_addr和块内偏移地址logic_shift_addr;
根据所述业务的标识查询首块地址表,得到所述业务占用的多个块中首个块的逻辑地址first_blk_addr;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310388500.2/2.html,转载请声明来源钻瓜专利网。