《缓存装置及方法.pdf》由会员分享,可在线阅读,更多相关《缓存装置及方法.pdf(15页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102387425 A (43)申请公布日 2012.03.21 CN 102387425 A *CN102387425A* (21)申请号 201010273912.8 (22)申请日 2010.08.30 H04Q 11/00(2006.01) H04B 10/08(2006.01) (71)申请人 中兴通讯股份有限公司 地址 518057 广东省深圳市南山区科技南路 55 号 (72)发明人 罗国强 杨振力 (74)专利代理机构 北京康信知识产权代理有限 责任公司 11240 代理人 余刚 吴孟秋 (54) 发明名称 缓存装置及方法 (57) 摘要 本发明公开了。
2、一种缓存装置及方法, 该缓存 装置包括缓存控制模块和 PMAU 申请模块, 其中, 缓存控制模块包括 : 第一判断单元, 用于判断是 否存在待缓存的数据包 ; 请求单元, 用于在判断 结果为是时, 请求 PMAU 申请模块为数据包分配 PMAU 号 ; 接收单元, 用于接收 PMAU 申请模块为数 据包分配的 PMAU 号 ; 缓存单元, 用于将数据包缓 存到PMAU号对应的缓存空间。 本发明满足了GPON ONU 业务的高性能、 高带宽要求。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 7 页 附图 5 页 CN 10238。
3、7438 A1/2 页 2 1.一种缓存装置, 应用于千兆无源光网络终端单元GPON ONU, 其特征在于, 包括缓存控 制模块和缓存包分配单元 PMAU 申请模块, 其中, 所述缓存控制模块包括 : 第一判断单元, 用于判断是否存在待缓存的数据包 ; 请求单元, 用于在判断结果为是时, 请求所述 PMAU 申请模块为所述数据包分配 PMAU 号 ; 接收单元, 用于接收所述 PMAU 申请模块为所述数据包分配的所述 PMAU 号 ; 缓存单元, 用于将所述数据包缓存到所述 PMAU 号对应的缓存空间。 2. 根据权利要求 1 所述的缓存装置, 其特征在于, 所述 PMAU 申请模块包括 : 。
4、分配单元, 用于根据来自所述请求单元的所述请求, 为所述数据包分配 PMAU 号 ; 标记单元, 用于对所述分配的 PMAU 号进行标记。 3. 根据权利要求 1 所述的缓存装置, 其特征在于, 还包括 : PMAU 回收先入先出 FIFO, 用于所述缓存单元通过所述 PMAU 回收 FIFO 缓存所述数据 包 ; 轮询模块, 用于对所述 PMAU 回收 FIFO 进行轮询 ; PMAU 回收模块, 用于根据所述轮询结果, 对所述 PMAU 号进行回收。 4. 根据权利要求 3 所述的缓存装置, 其特征在于, 还包括 : 组播管理模块, 用于查询组播表, 得到所述 PMAU 号的组播次数 ; 。
5、判断模块, 用于判断所述组播次数与所述组播管理模块的查表次数的差值是否为零, 如果判断结果为是, 则触发所述 PMAU 回收模块对所述 PMAU 号进行回收, 否则, 在所述组播 表中记录所述差值。 5. 根据权利要求 3 所述的缓存装置, 其特征在于, 所述 PMAU 回收模块还用于对所述分 配的 PMAU 号解除所述标记。 6. 根据权利要求 1 至 5 中任一项所述的缓存装置, 其特征在于, 所述 PMAU 申请模块还 包括 : 第二判断单元, 用于判断所述数据包的长度是否大于所述缓存空间 ; 链接单元, 用于在判断结果为是的情况下, 将所述接收单元接收的多个 PMAU 号进行链 接。 。
6、7. 根据权利要求 6 所述的缓存装置, 其特征在于, 所述链接单元还用于将所述多个 PMAU 号中的每个 PMAU 号的下一个 PMAU 号的信息记录在所述每个 PMAU 号的从低到高的 16 位中。 8. 根据权利要求 6 所述的缓存装置, 其特征在于, 所述标记单元还用于在所述每个 PMAU 号从低到高的第 17 位进行标记。 9. 一种缓存方法, 应用于千兆无源光网络终端单元 GPON ONU, 其特征在于, 包括 : 缓存控制模块判断是否存在待缓存的数据包 ; 如果判断结果为是, 则所述缓存控制模块请求 PMAU 申请模块为所述数据包分配 PMAU 号 ; 所述缓存控制模块接收所述 。
7、PMAU 申请模块为所述数据包分配的所述 PMAU 号 ; 所述缓存控制模块将所述数据包缓存到所述 PMAU 号对应的缓存空间。 10. 根据权利要求 9 所述的缓存方法, 其特征在于, 还包括 : 权 利 要 求 书 CN 102387425 A CN 102387438 A2/2 页 3 所述缓存控制模块通过 PMAU 回收先入先出 FIFO 缓存所述数据包 ; PMAU 回收模块根据对所述 PMAU 回收 FIFO 的轮询结果, 对所述 PMAU 号进行回收。 权 利 要 求 书 CN 102387425 A CN 102387438 A1/7 页 4 缓存装置及方法 技术领域 0001。
8、 本发明涉及通信领域, 具体而言, 涉及一种缓存装置及方法。 背景技术 0002 千兆无源光网络 (Gigabit-capable Passive Optical Networks, 简称为 GPON) 是一种新兴的技术, 作为无源光网络 (Passive Optical Networks, 简称为 PON) 系列技术 中架构最完备、 标准内容最完整、 应用前景广阔的下一代网络技术一直被普遍关注, 它是下 一代接入网的基础, 是取代目前非对称数字用户线路 (Asymmetrical Digital Subscriber Line, 简称为 ADSL) 接入技术的最佳方案, 在未来的接入网络市场。
9、, 具有巨大的商机和非常 广阔的市场前景。 0003 光网络终端单元 (Optical Network Unit, 简称为 ONU) 是 PON 套片的核心芯 片之一。在 GPON 系统中, GPON ONU 是连接局端和用户的桥梁, 在 GPON 系统中起着关 键作用, 它要求具有高带宽, 具有服务质量 (Quality of Service, 简称为 QoS) 保证 的全业务接入, GEM 帧的封装简单, 高效, 灵活, 以及强大的操作管理维护 (Operation, Administration&Maintenance, 简称为 OAM) 能力的特点。 0004 在初期的 GPON ON。
10、U 中, 上行和下行业务的缓存空间管理一般是采用硬件来实现 的。同时, 相对于初期的 GPON ONU 业务来说, 如今的 GPON ONU 业务对缓存空间管理提出了 更高性能、 更高带宽的要求。但是发明人发现, 如今的 GPON ONU 并不能满足 GPON ONU 业务 提出的上述要求。 发明内容 0005 针对相关技术中的 GPON ONU 不满足 GPON ONU 业务的高性能、 高带宽要求的问题 而提出本发明, 为此, 本发明的主要目的在于提供一种缓存装置, 以解决上述问题。 0006 为了实现上述目的, 根据本发明的一个方面, 提供了一种缓存装置, 应用于 GPON ONU。 00。
11、07 根据本发明的缓存装置包括缓存控制模块和 PMAU 申请模块, 其中, 缓存控制模块 包括 : 第一判断单元, 用于判断是否存在待缓存的数据包 ; 请求单元, 用于在判断结果为是 时, 请求PMAU申请模块为数据包分配PMAU号 ; 接收单元, 用于接收PMAU申请模块为数据包 分配的 PMAU 号 ; 缓存单元, 用于将数据包缓存到 PMAU 号对应的缓存空间。 0008 进一步地, PMAU 申请模块包括 : 分配单元, 用于根据来自请求单元的请求, 为数据 包分配 PMAU 号 ; 标记单元, 用于对分配的 PMAU 号进行标记。 0009 进一步地, 上述缓存装置还包括 : PMA。
12、U 回收 FIFO, 用于缓存单元通过 PMAU 回收 FIFO 缓存数据包 ; 轮询模块, 用于对 PMAU 回收 FIFO 进行轮询 ; PMAU 回收模块, 用于根据轮 询结果, 对 PMAU 号进行回收。 0010 进一步地, 上述缓存装置还包括 : 组播管理模块, 用于查询组播表, 得到 PMAU 号的 组播次数 ; 判断模块, 用于判断组播次数与组播管理模块的查表次数的差值是否为零, 如果 说 明 书 CN 102387425 A CN 102387438 A2/7 页 5 判断结果为是, 则触发 PMAU 回收模块对 PMAU 号进行回收, 否则, 在组播表中记录差值。 0011。
13、 进一步地, PMAU 回收模块还用于对分配的 PMAU 号解除标记。 0012 进一步地, PMAU 申请模块还包括 : 第二判断单元, 用于判断数据包的长度是否大 于缓存空间 ; 链接单元, 用于在判断结果为是的情况下, 将接收单元接收的多个 PMAU 号进 行链接。 0013 进一步地, 链接单元还用于将多个 PMAU 号中的每个 PMAU 号的下一个 PMAU 号的信 息记录在每个 PMAU 号的从低到高的 16 位中。 0014 进一步地, 标记单元还用于在每个 PMAU 号从低到高的第 17 位进行标记。 0015 为了实现上述目的, 根据本发明的另一个方面, 提供了一种缓存方法,。
14、 应用于 GPON ONU。 0016 根据本发明的缓存方法包括 : 缓存控制模块判断是否存在待缓存的数据包 ; 如果 判断结果为是, 则缓存控制模块请求PMAU申请模块为数据包分配PMAU号 ; 缓存控制模块接 收PMAU申请模块为数据包分配的PMAU号 ; 缓存控制模块将数据包缓存到PMAU号对应的缓 存空间。 0017 进一步地, 上述方法还包括 : 缓存控制模块通过PMAU回收先入先出FIFO缓存数据 包 ; PMAU 回收模块根据对 PMAU 回收 FIFO 的轮询结果, 对 PMAU 号进行回收。 0018 通过本发明, 采用PMAU申请模块为数据包分配PMAU号, 以及缓存单元将。
15、数据包缓 存到PMAU号对应的缓存空间, 解决了相关技术中的GPON ONU的问题, 进而满足了GPON ONU 业务的高性能、 高带宽要求。 附图说明 0019 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。在附图中 : 0020 图 1 是根据本发明实施例的缓存装置的结构框图 ; 0021 图 2 是根据本发明优选实施例的缓存装置的结构框图 ; 0022 图 3 是根据本发明优选实施例的缓存装置的示意图 ; 0023 图 4 是根据本发明优选实施例的缓存装置的链表 RAM 的示意图 ; 00。
16、24 图 5 是根据本发明实施例的缓存方法的流程图。 具体实施方式 0025 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。 0026 本发明提供了一种缓存装置, 应用于 GPON ONU。图 1 是根据本发明实施例的缓存 装置的结构框图, 如图1所示, 该缓存装置包括缓存控制模块11和缓存包分配单元(Packet Memory Allocated Unit, 简称为 PMAU) 申请模块 12, 其中, 缓存控制模块 11 包括第一判断 单元 112、 请求单元 114、 接收单元 116 和缓存单元 118。。
17、下面对其结构进行详细描述。 0027 第一判断单元 112, 用于判断是否存在待缓存的数据包。请求单元 114, 连接至第 一判断单元 112 和 PMAU 申请模块 12, 用于在第一判断单元 112 判断结果为是时, 请求 PMAU 申请模块12为数据包分配PMAU号。 接收单元116, 连接至PMAU申请模块12, 用于接收PMAU 说 明 书 CN 102387425 A CN 102387438 A3/7 页 6 申请模块 12 为数据包分配的 PMAU 号。缓存单元 118, 连接至接收单元 116, 用于将数据包 缓存到接收单元 116 接收的 PMAU 号对应的缓存空间。 00。
18、28 相关技术中的 GPON ONU 不满足 GPON ONU 业务的高性能、 高带宽要求。本发明实 施例中, 通过 PMAU 申请模块为数据包分配 PMAU 号, 以及缓存单元将数据包缓存到 PMAU 号 对应的缓存空间, 提高了数据包缓存效率, 可以满足 GPON ONU 业务的高性能、 高带宽要求。 0029 需要说明的是, 上述缓存空间可以是第二代双倍速率同步动态随机存取器 (Double Data Rate 2 Synchronous Dynamic Random Access Memory, 简称为 DDR2SDRAM) 中的缓存空间。 0030 图 2 是根据本发明优选实施例的缓。
19、存装置的结构框图。 0031 优选地, PMAU 申请模块 12 包括分配单元 122 和标记单元 124。下面对其结构进行 详细描述。 0032 分配单元122, 连接至缓存控制模块11中的请求单元114, 用于根据来自请求单元 114 的请求, 为数据包分配 PMAU 号。标记单元 124, 连接至分配单元 122, 用于对分配单元 122 分配的 PMAU 号进行标记。 0033 本优选实施例中描述了标记单元 124 在分配单元 122 为数据包分配 PMAU 号之后, 对该 PMAU 号进行标记的过程。由于该标记可以用于指示该 PMAU 号已被使用, 这样, 可以避 免后续过程中分配单。
20、元122再次分配该PMAU号从而造成的分配错误, 进而保证了数据包缓 存的正确性与可靠性。 0034 优选地, 上述缓存装置还包括 PMAU 回收 FIFO 13、 轮询模块 14 和 PMAU 回收模块 15。下面对其结构进行详细描述。 0035 PMAU 回收 FIFO 13, 用于缓存单元 118 通过 PMAU 回收 FIFO13 缓存数据包 ; 轮询模 块 14, 用于对 PMAU 回收 FIFO 13 进行轮询 ; PMAU 回收模块 15, 连接至轮询模块 14, 用于根 据轮询模块 14 的轮询结果, 对 PMAU 号进行回收。 0036 本优选实施例描述了对 PMAU 号进行。
21、回收的过程。由于一个 PMAU 号对应片外 DDR SDRAM 中一小片缓存空间, 因此将 PMAU 号回收再利用, 可以保证缓存空间的利用率, 进而满 足 GPON ONU 业务的高性能、 高带宽要求。 0037 需要说明的是, 可以规定每个 PMAU 对应的缓存空间最大不超过 2048 字节。 0038 优选地, 上述缓存装置还包括组播管理模块16和判断模块17。 下面对其结构进行 详细描述。 0039 组播管理模块16, 用于查询组播表, 得到PMAU号的组播次数。 判断模块17, 连接至 组播管理模块 16, 用于判断组播次数与组播管理模块 16 的查表次数的差值是否为零, 如果 判断。
22、结果为是, 则触发 PMAU 回收模块 15 对 PMAU 号进行回收, 否则, 在组播表中记录差值。 0040 本优选实施例可以用于判断组播 PMAU 是否被回收, 其实现方式简单、 可靠。 0041 优选地, PMAU 回收模块 15 还用于对分配的 PMAU 号解除标记。 0042 本优选实施例中, 由于标记可以用于指示该 PMAU 号已被使用, 这样, 将 PMAU 号解 除标记, 可以保证 PMAU 号对应的缓存空间的利用率, 进而满足 GPON ONU 业务的高性能、 高 带宽要求 0043 优选地, PMAU 申请模块 12 还包括第二判断单元 126 和链接单元 128。下面对。
23、其结 构进行详细描述。 说 明 书 CN 102387425 A CN 102387438 A4/7 页 7 0044 第二判断单元126, 连接至缓存控制模块11中的请求单元114, 用于判断请求单元 114 请求的数据包的长度是否大于缓存空间 ; 链接单元 128, 连接至第二判断单元 126, 用于 在第二判断单元 126 的判断结果为是的情况下, 将接收单元接收的多个 PMAU 号进行链接。 0045 实际应用中, 数据包的长度可能大于缓存空间。这样, 就需要由多个 PMAU 来缓存 该数据包。更加优选地, 该数据包的多个 PMAU 可以通过链表来管理。 0046 因此, 本优选实施例。
24、保证了数据包缓存的正确性与可靠性。 0047 优选地, 链接单元 128 还用于将多个 PMAU 号中的每个 PMAU 号的下一个 PMAU 号的 信息记录在每个 PMAU 号的从低到高的 16 位中。优选地, 标记单元 124 还用于在每个 PMAU 号从低到高的第 17 位进行标记。 0048 本优选实施例详细描述了如何对多个 PMAU 号进行链接, 以及如何对多个 PMAU 号 进行标记。这样, 可以保证数据包缓存的正确性与可靠性。 0049 优选地, 对于数据包的长度可能大于缓存空间的数据包, 根据首 PMAU 号进行查 表, 得到下一个PMAU号, 并根据得到的PMAU号读数据, 以。
25、此类推, 待所有的数据包转发完成 之后, 对所有的缓存进行回收。 0050 本发明还提供了一个优选实施例, 结合了上述多个优选实施例的技术方案, 下面 结合图 3 来详细描述。 0051 图3是根据本发明优选实施例的缓存装置的示意图, 如图3所示, 包括缓存控制模 块 31、 PMAU 申请模块 32、 PMAU 回收模块 33、 组播管理模块 34、 轮询模块 35、 链表 RAM 36、 PMAU 回收 FIFO 37。下面对其进行详细描述。 0052 1、 缓存控制模块 31 的硬件实现描述。 0053 如果有数据包进来, 缓存控制模块 31 就会向 PMAU 申请模块 32 申请 PM。
26、AU 号, 在得 到申请的 PMAU 号之后, 就会根据 PMAU 号将数据包缓存到片外的 DDR2SDRAM 中, 当数据包缓 存完之后, 就会将该数据包对应的 PMAU 号以及长度信息缓存起来送给队列预处理 (Queue Pre-Process, 简称为 QPP)。如果进来的数据包有丢弃指示, 在把该数据包写入 DDR2SDRAM 的同时, 还要把该数据包申请的 PMAU 号送回 PMAU 管理模块进行回收。 0054 缓存控制模块 31 还要根据系统相关的描述信息, 比如 : 输出包的 PMAU 号, 逻辑端 口号, 以及包的长度等, 从 DDR2SDRAM 中读取该 PMAU 号所对应。
27、的数据包, 当该 PMAU 号对应 的数据包转发完成之后, 要将该数据包对应的 PMAU 号送到 PMAU 回收模块 33 进行回收, 同 时, 将从 DDR2SDRAM 中读取的数据包送到下一级模块进行处理。 0055 2、 PMAU 申请模块 32 的硬件实现描述。 0056 如果有 PMAU 申请, 在有空闲 PMAU 的情况下, 把当前头指针中的 PMAU 号输出, 同时 进行应答。同时, 以头指针为地址读链表 RAM 36, 将读出的值更新头指针, 然后以输出的缓 冲区号为地址在链表 RAM 36 写入 “1FFFF” 标记。 0057 如果是长包, 要以上一个缓冲区号为地址, 将当。
28、前头指针的内容写入链表 RAM 36 中, 同时标记缓冲区已被使用的标记。 0058 3、 PMAU 回收模块 33 的硬件实现描述。 0059 当有 PMAU 号需要释放时, 以要释放的 PMAU 号为地址读链表 RAM 36, 得到该 PMAU 的使用状态位和缓存链中的下一个 PMAU 号 next_pntr, 如果使用状态位为 0, 表示未使用, 或者该 PMAU 已经回收, 则不做任何操作。如果使用状态位为 1, 表示在使用中, 可以进行释 说 明 书 CN 102387425 A CN 102387438 A5/7 页 8 放。然后判断 next_pntr 是否为 FFFF, 如果是。
29、, 则表示要释放的 PMAU 是缓存链中最后一个 PMAU, 将该 PMAU 的号写入尾指针地址中, 并将尾指针更新为该号, 这样就把要释放的 PMAU 链在了空闲链表的尾部, 同时给出应答信号, 操作完成。如果不是, 先在要释放的 PMAU 索引 地址中写入 FFFF, 然后将其回收。 0060 4、 组播管理模块 34 的硬件实现描述。 0061 组播管理模块 34 是用来管理数据包的组播次数的, 对每个数据包而言, 当完成数 据缓存之后会有一个 PMAU 号, 就要根据该 PMAU 配置组播次数, 从轮询模块 35 送来的 PMAU 号就要根据该PMAU查组播次数, 首先要根据PMAU号。
30、将它对应的组播次数读出来, 减去回收 的次数 ( 对于转发回收的 PMAU 号, 减 1, 对于随机早期丢弃的 PMAU 号, 减去实际丢弃的次 数 ), 如果相减之后结果为 0, 就将该 PMAU 号送去回收 ; 如果不为 0, 就将相减后的值再写入 组播表, 该 PMAU 号则不回收, 直到组播次数为 0 才回收。 0062 5、 轮询模块 35 的硬件实现描述。 0063 轮询模块 35 主要是对四个回收 FIFO 的空状态进行轮流检查, 当轮流检查到某个 回收 FIFO 不空时, 就要把该 FIFO 中的 PMAU 号读出来送到 PMAU 回收模块 33 进行回收, 为 了保证公平性,。
31、 轮询到某个不空FIFO的时候, 对该FIFO的读只有一次, 即 : 每次轮询只能读 一个 PMAU, 这样周而复始, 直到把回收 FIFO 中的 PMAU 读取完。 0064 在轮询的时候, 有一点值得注意, 对于出错的 PMAU 和入队预处理丢弃的 PMAU, 要 直接送去回收, 对转发完成的 PMAU 和随机早期丢弃的 PMAU 要送到组播管理模块 34 进行组 播次数查表处理。 0065 6、 链表 RAM 36 和 PMAU 回收 FIFO 37 的硬件实现描述。 0066 图 4 是根据本发明优选实施例的缓存装置的链表 RAM 的示意图, 如图 4 所示, 如果 有 PMAU 申请。
32、, 以头指针为地址读链表 RAM36, 将读出的值更新头指针, 然后以输出的缓冲区 号为地址在链表RAM 36写入 “1FFFF” 标记。 如果有PMAU号需要释放时, 以要释放的PMAU号 为地址读链表 RAM 36, 得到该 PMAU 的使用状态位和缓存链中的下一个 PMAU 号 next_pntr, 如果使用状态位为 0, 表示未使用, 或者该 PMAU 已经回收, 则不做任何操作。如果使用状态 位为 1, 表示在使用中, 可以进行释放。然后判断 next_pntr 是否为 FFFF, 如果是, 则表示要 释放的PMAU是缓存链中最后一个PMAU, 将该PMAU的号写入尾指针地址中, 并。
33、将尾指针更新 为该号, 这样就把要释放的 PMAU 链在了空闲链表的尾部, 同时给出应答信号, 操作完成。如 果不是, 先在要释放的 PMAU 索引地址中写入 FFFF, 然后将其回收。 0067 需要说明的是, 图 3 中的四个 PMAU 回收 FIFO 37 仅仅是列举, 实际应用中, 还可以 采取其它数量的 PMAU 回收 FIFO 37。同时, PMAU 回收 FIFO 37 可以是用硬件 IP 实现的, 链 表 RAM 36 同样也可以是用 IP 实现的。 0068 本发明还提供了一种应用于 GPON ONU 的缓存方法。图 5 是根据本发明实施例的 缓存方法的流程图, 如图 5 所。
34、示, 包括如下的步骤 S502 至步骤 S508。 0069 步骤 S502, 缓存控制模块判断是否存在待缓存的数据包。 0070 步骤 S504, 如果判断结果为是, 则缓存控制模块请求 PMAU 申请模块为数据包分配 PMAU 号。 0071 步骤 S506, 缓存控制模块接收 PMAU 申请模块为数据包分配的 PMAU 号。 0072 步骤 S508, 缓存控制模块将数据包缓存到 PMAU 号对应的缓存空间。 说 明 书 CN 102387425 A CN 102387438 A6/7 页 9 0073 相关技术中的 GPON ONU 不满足 GPON ONU 业务的高性能、 高带宽要求。
35、。本发明实 施例中, 通过 PMAU 申请模块为数据包分配 PMAU 号, 以及缓存单元将数据包缓存 PMAU 号对 应的缓存空间, 提高了数据包缓存效率, 可以满足 GPON ONU 业务的高性能、 高带宽要求。 0074 优选地, 上述方法还包括缓存控制模块通过 PMAU 回收 FIFO 缓存数据包 ; PMAU 回 收模块根据对 PMAU 回收 FIFO 的轮询结果, 对 PMAU 号进行回收。 0075 本优选实施例描述了对 PMAU 号进行回收的过程。由于一个 PMAU 号对应片外 DDR SDRAM 中一小片缓存空间, 因此将 PMAU 号回收再利用, 可以保证缓存空间的利用率, 。
36、进而满 足 GPON ONU 业务的高性能、 高带宽要求。 0076 为了帮助理解上述实施例, 下面进一步描述本发明的其它多个优选实施例。 0077 1、 PMAU 号的申请过程 0078 如果有以太网包要缓存, 缓存控制模块就要向 PMAU 管理模块提出申请, PMAU 管 理模块在有空闲 PMAU 的情况下, 就会分配给缓存控制模块一个 PMAU, 同时, 对该分配了的 PMAU 进行 “已经使用” 的标记, 写入到链表 RAM 中, 0079 对于长包, 可能需要多个 PMAU, 则要把这些 PMAU 进行链接, 就是把下一个 PMAU 写 入上一个 PAMU 为地址的低 16 位, 第。
37、 17 位标记是否使用, 以此类推, 来链接 PMAU, 最后一个 PMAU 的地址写 FFFF。 0080 2、 PMAU 号的释放过程 0081 本实施例中包括 : 包出错直接丢弃的 PMAU, 随机早期丢弃 (Random Early Discard, 简称为 RED) 的 PMAU, 入队丢弃的 PMAU, 以及每次转发完后需要回收的 PMAU, 轮询 模块对这几个 FIFO 的状态进行轮询, 如果 FIFO 不空, 就会读取 FIFO 中的 PMAU, 对于直接 丢弃的 PMAU, 读取 PMAU 后直接送到回收模块进行回收, 对于转发完成和随机早期丢弃的 PMAU, 则要送到组播管。
38、理模块进行查表, 当该 PMAU 对应的组播次数为零时, 才把该 PMAU 送 到回收模块进行回收, PMAU 回收模块根据要回收的 PMAU 号去读链表 RAM, 如果该缓冲区的 使用标记为 “1” , 则将该缓冲区号更新下一个尾指针, 同时以当前尾指针为地址, 需要释放 的缓冲区号为数据, 写入链表 RAM 中, 注意, 使用标记置 “0” 。 0082 需要说明的是, 在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的 计算机系统中执行, 并且, 虽然在流程图中示出了逻辑顺序, 但是在某些情况下, 可以以不 同于此处的顺序执行所示出或描述的步骤。 0083 综上所述, 根据本发明的。
39、上述实施例, 提供了一种缓存装置及方法。 本发明与现有 技术相比取得很大的进步, 达到了缓存带宽10Gbits/s效果, 克服了以往DSL Modem效率和 性能不高的缺陷, 并实现了长 / 短包缓存的混合管理, 以及组播管理, 提高了效率。同时, 本 发明采用 PMAU 申请模块为数据包分配 PMAU 号, 以及缓存单元将数据包缓存到 PMAU 号对应 的缓存空间, 解决了相关技术中的 GPON ONU 的问题, 进而满足了 GPON ONU 业务的高性能、 高带宽要求。 0084 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在。
40、单个的计算装置上, 或者分布在多个计算装置所组成 的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以将它们存储 在存储装置中由计算装置来执行, 或者将它们分别制作成各个集成电路模块, 或者将它们 中的多个模块或步骤制作成单个集成电路模块来实现。这样, 本发明不限制于任何特定的 说 明 书 CN 102387425 A CN 102387438 A7/7 页 10 硬件和软件结合。 0085 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换。
41、、 改进等, 均应包含在本发明的保护范围之内。 说 明 书 CN 102387425 A CN 102387438 A1/5 页 11 图 1 说 明 书 附 图 CN 102387425 A CN 102387438 A2/5 页 12 图 2 说 明 书 附 图 CN 102387425 A CN 102387438 A3/5 页 13 图 3 说 明 书 附 图 CN 102387425 A CN 102387438 A4/5 页 14 图 4 说 明 书 附 图 CN 102387425 A CN 102387438 A5/5 页 15 图 5 说 明 书 附 图 CN 102387425 A 。