基于网络编码的多信源组播通信系统.doc_第1页
基于网络编码的多信源组播通信系统.doc_第2页
基于网络编码的多信源组播通信系统.doc_第3页
基于网络编码的多信源组播通信系统.doc_第4页
基于网络编码的多信源组播通信系统.doc_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 基于网络编码的多信源组播通信系统基于网络编码的多信源组播通信系统 摘要摘要 网络编码改变了传统网络节点上路由器交换和交换机对信息流 存储 转发 的模式 提出网络路由交换节点对输入的信息流编 码后再发送 并在接收器上进行解码 从而还原信息 随着网络编 码理论的日益发展和完善 其应用的研究也越来越受到重视 本文首先介绍网络编码理论的基本概念 回顾了近年来网络编 码的研究动态 接着指出研究多信源网络编码组播通信的重要性 在使用 NetFPGA 开发平台的基础上 提出网络编码组播通信系统及 其整体设计方案 在方案中重点介绍了硬件系统中采用的编码策略 随机线性编码 解码策略 算法以及通信协议 同时介绍了系统 的软硬件接口和软件作用 最后 给出了编码路由器 转发路由器 以及解码路由器三个系统的详细设计方案 方案中主要包括单元模 块图 每个模块的主要功能与结构 数据处理流程及算法说明 输 入输出信号及说明 关键时序或状态 由于本系统的主要功能是由硬件实现 所以和传统组播通信网 络相比 具有时延小 没有了调度和排队时间 使得网络中链路负 载更均衡 体现出了网络编码的优势 2 目录目录 1 网络编码理论及相关研究应用背景网络编码理论及相关研究应用背景 4 1 1 网络编码理论产生背景和基本概念 4 1 2 国内外研究动态与现状 8 2 多信源组播系统结构及整体设计方案多信源组播系统结构及整体设计方案 9 2 1 项目研究需求 目标和内容 9 2 2 NETFPGA 新一代开放式网络研究平台简介 10 2 3 利用 NETFPGA 实现本设计的总体构想 11 2 4 系统实现的整体设计方案说明 11 2 4 1 系统拓扑图及说明 11 2 4 2 编码策略与方案 12 2 4 3 随机系数的选择 14 2 4 4 NCP 数据包头的格式 14 2 4 5 转发 组播 路由器 R 工作流程 17 2 4 6 数据包的解码 18 2 5 系统软硬件接口及相关软件功能 26 3 系统的详细设计方案系统的详细设计方案 28 3 1 概述 28 3 2 编码路由器详细设计方案 28 3 2 1 编码系统整体模块如图 3 2 1 所示 28 3 2 2 系统中各单元模块的功能与时序 29 3 3 转发路由器详细设计方案 44 3 3 1 转发路由器系统整体模块图 44 3 3 2 系统中各单元模块的功能与时序 46 3 4 解码路由器详细设计方案 51 3 4 1 解码路由器系统整体模块图 51 3 4 2 系统中各单元模块的功能与时序 52 4 结论结论 74 5 参考文献参考文献 78 附录附录 81 3 1 网络编码理论及相关研究应用背景网络编码理论及相关研究应用背景 1 1 网络编码理论产生背景和基本概念 60 年前 C E Shannon 发表 通信数学原理 解决了信道容量极限问题 2000 年诞生的网络编码 Network Coding NC 是继此后的一个全新突破 它 解决了网络通信中单 多源对多接收点组 广播如何达到网络容量极限的问题 传 统网络通信节点上的路由交换机只完成存储转发功能 NC 指出如果允许路由 交换机对输入信息流进行编码再发送 使得网络节点既实现路由功能又实现编 码功能 在这种全新的体系结构下 网络性能可以达到最大流传输的理论极限 1 2 2000 年 以香港中文大学信息工程系为主的研究人员针对通讯网络的瓶颈 问题 提出了一种看似疯狂的想法 这种具有革命潜力的方法名为网络编码 以网络编码器取代路由器 原本只是单纯的传送信息的路由器 换成编码器之 后 传送的却是有关信息的证据 而不是信息本身 当接收器收到证据时 即 可结合各项线索 推导出原始信息 3 科学美国人 杂志 Scientific American Magazine 2007 年 6 月 以 Breaking Network Logjams 打破网络僵局 为题刊登了 MIT 科学家详细介 绍了 7 年前诞生于香港中文大学的网络编码理论 4 其中指出 网络编码是继 60 年前 C E Shannon 发表 通信的数学原理 后 网络通信理论的一个全新突 破 C E Shannon 解决了点对点信道的容量极限问题 而 NC 解决了如何达到单 源对多点及多源对多点的网络通信容量极限的问题 4 传统网络通信理论把信 息流当成管道中流动的水 是不可压缩的 故传统网络节点上的路由交换机只 是完成存储转发功能 NC 理论的划时代意义在于 提出网络路由交换节点对 输入的信息流进行编码再发送 可进一步提升网络吞吐量 从而改变了比特不 能再被压缩的经典结论 指出网络信息流可以被压缩 网络编码最简单的概念来自 蝴蝶网 如图 1 1 1 所示 4 图 1 1 1 网络编码的基本原理 上图所示的网络中 源节点 S1 想把信息流 ai 传送给 R1 和 R2 另一方面 源节点 S2 也希望在相同时间 以相同速度 把信息流 bi 传送给同样的接收节 点 R1 和 R2 假设每个路径每秒可携带一个位元 而且只能顺着箭号所指的方 向前进 如果路由器只传输其所接收到的信息 那么中间链路将是个瓶颈 因 为每秒总共接收到二位元的资料 但其容量只有一位元 路由器每秒只能传送 一位元资料给中间链路 这种瓶颈会造成可怕的塞车 相反 如果把一般的路 由器换成编码器 它可以把两个信息通过异或或者线性组合运算成单一位元输 送给中间链路 并且发送 aibi 或者 ai 和 bi 的任意线性组合 这样就轻 而易举地解决了塞车问题 3 5 网络编码另一个与路由系统不同之处在于 充分利用网络资源 图 1 中 S1 透过路径 S1R1 把 ai 传给 R1 S2 透过路径 S2R2 把 bi 传给 R2 这在路由系统 中是不会使用到的 节点 R1 接收到 ai 并且根据每次编码器运算结果 输入 到与编码器使用的相同函数 异或或者线性组合 内 推导出 bi 节点 R2 解 出 ai 也是同样的道理 重复对每个位元字串进行相同的流程 最后就能得出两 个原始信息 可见 有了网络编码 网络的运作可望变得更有效率 不需要增加硬件设 备或频宽 就可以提高网络吞吐量 可以改善网络的负载均衡 节省网络带 宽消耗 节省无线网络的能量消耗 提高了网络的鲁棒性 同时对于具有链路 5 时延的网络 相对于路由方式 通过网络编码进行多播传输时可以获得较小的 传播时延 6 7 随后 李硕彦等在证明了在足够大的有限域内 通过节点内进行线性网络编 码 Linear Network Coding LNC 就可以达到网络组播 广播等的理论上限 8 在线性范围内解决达到理论上界的问题为 NC 进入实际应用奠定了坚实的 基础 随后 Yueng 李硕彦 9 等出版了国际上第一本网络编码理论专著 Network Coding Theory Koetter 等 10 于 2003 年提出将 NC 问题与多项式方程建立数学联系 使得 讨论 NC 问题又多了一种有力的数学工具代数理论 LNC 针对于已经了解整个网 络拓扑状况的情况下 经过网络路由设定 通过确定的矩阵计算公式对报文进 行编解码 实现简单 但适应性和容错性较差 论文 11 中提出随机网络编码 概念 Random Network Coding RNC 与线性编码结合在一起 使得分布式 的 简单实用的网络编码体系形成 随机线性网络编码是一种分布式算法 编 码在有限域上进行 系数随机选取 其灵活性远大于 LNC 下面给出一个不仅 NC 提高多播网络吞吐量 而且显著改善网络负载均衡的 例子 图 1 1 2 a 显示了网络的容量 所有的边的容量都是 2 在这个例子中 最大流是 4 图 2 b c 和 d 分别显示了单会话 IP 组播 多会话 IP 组播和 基于网络编码的组播的分配树 在图 2 b 中 发送端通过一个组播分配树同时 向接收端 R1 R2 和 R3 发送了两个比特 a b 在图 2 c 中 组播会话 1 2 和 3 分别向接收者发送了比特 a b 和 c 需要指出的是多会话 IP 组播所有的会话 不是拥有同一个分配树 在图 2 d 中 发送端同时向接收端 R1 R2 和 R3 发送 了四个比特 a b c 和 d 12 所有的组播技术中网络编码可以达到最高的吞吐量 因为它可以最大流发 送信息 我们看到在图 2 b c 和 d 中在单位时间内接收端分别接收到 2 3 和 4 比特 因此在这个例子中 基于网络编码的组播的吞吐量是单会话 IP 组播的 2 倍 多会话 IP 组播的 1 3 倍 通过比较基于网络编码的组播和现在的组播来研究负载均衡的影响 假定 基于网络编码的组播使用图 2 d 例子中的容量的一半 在这种情况下 单会话 IP 组播和网络编码都在单位时间内向所有的接收端发送了 2 比特 在图 2 b 6 会话 1 a 会话 2 b 会话 3 c 中 通过了网络中 9 条链路 总共发送 10 比特 中的 5 条来传输 2 比特 另外 4 条没有使用 另一方面 当网络编码使用时 2 d 通过了 9 条链路 总共 发送 9 比特 来传输 2 比特 于是通过应用网络编码 流量负载可以分散在整 个网络上 S 123 R1R2R3 2 2 2 222 22 2 S 123 R1R2R3 a b a b a ba b a b a 链接容量 b 单会话的 IP 组播 S 123 R1R2R3 S 123 R1R2R3 a b a c b d c d a c b d a bc d a ba c b d c d c 多会话的 IP 组播 d 网络编码组播 图 1 1 2 网络编码提高网络容量 同时均衡了网络流量 1 2 国内外研究动态与现状 网络编码自诞生以来 普及性的急速增长就连其奠基者也始料未及 从 2005 年开始每年一次的 NetCod workshop 得到了 Microsoft Qualcomm 等机构 的资助 短短几年 发表了几百篇学术论文 这个崭新的领域对许多相关学科 产生了深远的影响 NC 的理论研究范围包括信息论及通信的几乎每个领域 如线性编码 非线性编码 随机编码 静态码 卷积码 群码 Alphabet 码 码构建 算法协议 有环网络 无向网络 链路失效及其网络管理 分离理论 错误检测和纠错码 密码学 多信源编码 多 单播编码 Cost Criteria 非均匀 需求 关联信源编码 最大流 刮集界 叠加编码 网络互连 路由寻找 无线及 卫星网络 Ad hoc 网络 传感网络 数据存储及分布 矩阵理论 复杂性理论 7 图论 随机图论 树装箱 Tree Packing 多种物流 Multicommodity flow 游戏理论 矩阵胚理论 Matriod theory 信息论不等式 排队论分析 率失真 rate distortion 可逆网络 多用户信道 联合网络信道编码 P2P 网络等 13 国外多所著名大学如普林斯顿大学 麻省理工 瑞士 EPFL 学院等和多家 IT 公司的研究中心 包括微软研究院 贝尔实验室 AT 主机访问 NetFPGA 寄存器的过程如下 1 控制软件调用 ioctl 函数操作网络 socket 由函数 ioctl 传递给驱动程序 2 驱动程序完成 PCI 寄存器的读写 3 系统的详细设计方案系统的详细设计方案 3 1 概述 在组播网络的拓扑图中 编码路由器 转发路由器和解码路由器是三个独 立的系统 各自完成编码 转发和解码的任务 前面讲过 分组的编码 解码 主要在网络层完成 在网络层中数据通道中 data bus 和 ctrl bus 是同步传输的 二者之间的关系和格式如图 3 1 1 所示 ctrl bus 8 位 Data bus 64 位 ffmodule header 27 00Pkt data1 00 xy xy 00 Last pkt data 图 3 1 1 数据通道中的 data bus 和 ctrl bus Ctrl 为 ff 时 表明为一个数据包的包头 xy 为非零数据 指明最后一个有 效的字节所在的位置 如 01000000 指明是第 7 个 即 data 63 48 为有效数据 模块之间数据传输的过程是 若上一个模块已经处理完毕 想把数据传输到下 一个模块 首先判断输入信号 rdy 是否有效 当 rdy 1 时 将数据和控制信号 同步发送出去 同时 wr vld 信号有效 时序如图 3 1 2 所示 图 3 1 2 有效的数据传输时序 3 2 编码路由器详细设计方案 3 2 1 编码系统整体模块如图 3 2 1 所示 28 Ctrl arbiter ctrl 1 MAC Input FIFO 1Input FIFO 2 In data 1In data 2 Input fifo data 2 Input fifo data 1 In ctrl 1In ctrl 2 Input fifo ctrl 2 Input fifo ctrl 1 Wr en 1Wr en 2 In rdy n 1In rdy n 2 Input fifo rd en 2 Input fifo rd en 1 Input fifo empty 2 Input fifo empty 1 Input arbiter 2 Out data out 2 Out ctrl out 2 Header Spliter 1 Rdy arbiter ctrl 1 Data arbiter ctrl 1 Ctrl arbiter ctrl 1 FIFO ctrl payload 1 Data spliter payloadfifo 1 Wr en spliter payloadfifo 1 Rdy spliter payloadfifo 1 Head Info Extractor 1 Data spliter extractor 1 Rdy spliter extractor 1 FIFO ctrl legacy 1 FIFO ctrl packing info 1 Data extractor legacyfifo 1 Wr en extractor legacyfifo 1 Rdy extractor legacyfifo 1 Data extractor packingfifo 1 Wr en extractor packingfifo 1 Rdy extractor packingfifo 1 MAC Payload Router Data payloadfifo router 1 rd en payloadfifo router 1 Empty payloadfifo router 1 Packing FIFO Data router packingfifo Rdy router packingfifo Wr en router packingfifo M64x8 Multiplier 1 m64x8 Multiplier 2 Prng tap16 8bit rand number generator Rand num 1 Rand num 2 Data router multiplier 1 Data router multiplier 2 Rand num en m72x72 adder Data multiplier adder 1 Data multiplier adder 2 Rand num center 2 Data converter packingfifo Wr en converter packingfifo Rdy converter packingfifo Packing Center Data center packingfifo Data center legacyfifo 1 Data center packinginfo 1 Out data out 0 Out ctrl out 0 Data val out 2 Rdy out 2 Rdy out 0 Data val out 0 rd en center legacyfifo 1 rd en center packinginfo 1 val arbiter ctrl 1 Ctrl spliter payloadfifo 1 ctrl spliter extractor 1 Ctrl extractor legacyfifo 1 Ctrl payloadfifo router 1 m72to64 converter Header Spliter 2 Rdy arbiter ctrl 2 Data arbiter ctrl 2 Ctrl arbiter ctrl 2 FIFO ctrl payload 2 Data spliter payloadfifo 2 Wr en spliter payloadfifo 2 Rdy spliter payloadfifo 2 Head Info Extractor 2 Data spliter extractor 2 Rdy spliter extractor 2 FIFO ctrl legacy 2 FIFO ctrl packing info 2 Data extractor legacyfifo 2 Wr en extractor legacy 2 Rdy extractor legacy 2 Data extractor packingfifo 2 Wr en extractor packingfifo 2 Rdy extractor packingfifo 2 Val arbiter ctrl 2 Ctrl spliter payloadfifo 2 Ctrl spliter extractor 2 Ctrl extractor legacyfifo 2 Data payloadfifo router 2 rd en payloadfifo router 2 Ctrl payloadfifo router 2 Empty payloadfifo router 2 Control arbiter Green light 1Green light 2 Router status Empty packingfifo Count packingfifo Router status Empty converterfifo Rand num center 1 Out dataOut ctrlrd enemptyOut dataOut ctrlrd enempty in datain ctrlWr enfullin datain ctrlWr enfull Input arbiter 1 Out data out 1 Out ctrl out 1 Data val out 1 Rdy out 1 Output Arbiter In dataIn ctrlRd enempty Rdy ctrl Out data ctrl Out ctrl ctrl Data val ctrl Rdy out Out data out Out ctrl out Data val out Rdy out Out data out Out ctrl out Data val out Rdy ctrl Out data ctrl Out ctrl ctrl Data val ctrl In dataIn ctrlRd en empty Ctrl arbiter ctrl 2 Out data mac Out ctrl mac Rdy mac Data val mac Red light 1 red light 2 val spliter extractor 1 val spliter extractor 2 Data center legacyfifo 2 Data center packinginfo 2 rd en center legacyfifo 2 rd en center packinginfo 2 Data adder convertor Rd en center packingfifo Rdy router multiplier 1 Rdy router multiplier 1 Val router multiplier 1 Val router multiplier 2 Val multiplier adder 1 Rdy multiplier adder 1 Val multiplier adder 1 rdy multiplier adder 1 Val adder convertor rdy adder convertor Control Coding Packing Input arbiter PHY芯片1PHY芯片2 RGMII 0RGMII 1RGMII 2RGMII 3 MAC Group 0MAC Group 1MAC Group 2MAC Group 3 PHY芯片1PHY芯片2 RGMII 0RGMII 1RGMII 2RGMII 3 MAC Group 0MAC Group 1MAC Group 2MAC Group 3 Coding Node User Data Path Empty packingfifo 图 3 2 1 编码系统整体模块图 3 2 2 系统中各单元模块的功能与时序 1 Input arbiter 29 Input arbiter 内部结构如图 3 2 2 所示 图 3 2 2 Input arbiter 内部结构图 本模块输入输出信号列表及说明 Signal nameBit widthInput or outputdescription Input fifo data 164inputInput data bus from input FIFO 1 Input fifo ctrl 18inputInput ctrl bus from input FIFO 1 Input fifo empty 11input1 input FIFO is empty 0 otherwise Input fifo rd en 11outputRead enable Input fifo data 264inputInput data bus from input FIFO 2 Input fifo ctrl 28inputInput ctrl bus from input FIFO 2 Input fifo empty 21input1 input FIFO is empty 0 otherwise Input fifo rd en 21outputRead enable Data arbiter ctrl 164outputOutput data bus to control module Ctrl arbiter ctrl 18OutputOutput ctrl bus to control module Val arbitrer ctrl 11Output1 data from input arbiter 1 to head splitter 1 is valid 0 otherwise Rdy arbiter ctrl 11Input1 module head splitter 1 is ready to receive Data arbiter ctrl 264outputOutput data bus to control module Ctrl arbiter ctrl 28OutputOutput ctrl bus to control module Val arbitrer ctrl 21Output1 data from input arbiter 2 to head splitter 2 is valid 0 otherwise Rdy arbiter ctrl 21Input1 module head splitter 2 is ready to receive 0 otherwise 30 Data arbiter out 164outputOutput data bus to output arbiter module Ctrl arbiter out 18OutputOutput ctrl bus to output arbiter module Val arbiter out 11Output1 data from input arbiter 1 to output arbiter is valid 0 otherwise Rdy arbiter out 11Input1 module output arbiter is ready to receive from input arbiter 1 0 otherwise Data arbiter out 264outputOutput data bus to output arbiter module Ctrl arbiter out 28OutputOutput ctrl bus to output arbiter module Val arbiter out 21Output1 data from input arbiter 2 to output arbiter is valid 0 otherwise Rdy arbiter out 21Input1 module output arbiter is ready to receive from input arbiter 2 0 otherwise clk1InputSystem clock running at 125MHz Rst n1inputSystem asynchronous reset signal 功能描述及数据流 本模块执行输入仲裁功能 两个独立的 input arbiter 模块分别从两个输入 FIFO 读出数据包 判断数据包类型 决定输出端口 非 IP 包直接送往 output arbiter IP 包送往 control 输出数据 为了判断数据包类型 需要获取 16 bit Ether Type 信息 该信息位于每个数据 包第二个 double word 中的 31 16 位 若 Ether Type 为 0 x0080 则说明此数据 包为 IP 数据包 若 Ether Type 值不是 0 x0080 则说明此数据包不是 IP 数据包 将被直接送往 output arbiter 模块 关键时序及状态机 本模块的状态机的状态转化如图 3 2 3 所示 31 ENABLEGET DATA Judge flag 0 Or Input FIFO empty Judge flag 1 And Input FIFO inempty SEND DATA GET ETHERT YPE SEND 1ST D WORD Rst n Current double word Is the first double word Of a pkt Current double word Is NOT the first double Word of a pkt Current double word Is the last double word Of a pkt Read FIFO delay 1 clk circle Read FIFO delay 1 clk circle Head spliter not ready Head spliter Not ready Current double word Is NOT the last double Word of a pkt 图 3 2 3 input arbiter 状态转换图 2 Control 子模块列表 内部结构如图 3 2 4 Sub module namequantitydescription Head spliter2Split head and payload send head to head info extractor send payload to FIFO ctrl payload Head info extractor2Receive head from head splitter extract source number generate generation number Store legacy head and packing info head respectively in FIFO ctrl legacy and FIFO ctrl packinginfo Control arbiter1Detect ctrl bus to determine whether should process both channels synchronously or hold one channel and process the other FIFO ctrl payload2Standard FIFO generated by CoreGen store payload FIFO ctrl legacy2Standard FIFO generated by CoreGen store legacy head FIFO ctrl packinginfo2Standard FIFO generated by CoreGen store packing info head 32 Header Spliter 1 Rdy arbiter ctrl 2 Data arbiter ctrl 2 Ctrl arbiter ctrl 2 FIFO ctrl payload 1 Data spliter payloadfifo 1 Wr en spliter payloadfifo 1 Rdy spliter payloadfifo 1 Head Info Extractor 1 Data spliter extractor 1 Rdy spliter extractor 1 FIFO ctrl legacy 1 FIFO ctrl packing info 1 Data extractor legacyfifo 1 Wr en extractor legacyfifo 1 Rdy extractor legacyfifo 1 Data extractor packingfifo 1 Wr en extractor packingfifo 1 Rdy extractor packingfifo 1 Data payloadfifo router 1 rd en payloadfifo router 1 Empty payloadfifo router 1 Data center legacyfifo 1 Data center packingfifo 1 rd en center legacyfifo 1 rd en center packingfifo 1 val arbiter ctrl 2 Ctrl spliter payloadfifo 1 ctrl spliter extractor 1 Ctrl extractor legacyfifo 1 Ctrl payloadfifo router 1 Header Spliter 2 Rdy arbiter ctrl 1 Data arbiter ctrl 1 Ctrl arbiter ctrl 1 FIFO ctrl payload 2 Data spliter payloadfifo 2 Wr en spliter payloadfifo 2 Rdy spliter payloadfifo 2 Head Info Extractor 2 Data spliter extractor 2 Rdy spliter extractor 2 FIFO ctrl legacy 2 FIFO ctrl packing info 2 Data extractor legacyfifo 2 Wr en extractor legacy 2 Rdy extractor legacy 2 Data extractor packingfifo 2 Wr en extractor packingfifo 2 Rdy extractor packingfifo 2 Val arbiter ctrl 1 Ctrl spliter payloadfifo 2 Ctrl spliter extractor 2 Ctrl extractor legacyfifo 2 Data payloadfifo router 2 rd en payloadfifo router 2 Ctrl payloadfifo router 2 Empty payloadfifo router 2 Control arbiter Green light 1Green light 2 Red light 1 red light 2 val spliter extractor 1 val spliter extractor 2 Data center legacyfifo 2 Data center packinginfo 2 rd en center legacyfifo 2 rd en center packingfifo 2 Control 图 3 2 4 control 模块内部结构 本模块输入输出信号列表及说明 Signal nameBit widthInput or outputdescription Data arbiter ctrl 164InputInput data bus from input arbiter 1 Ctrl arbiter ctrl 18InputInput ctrl bus from input arbiter 1 Val arbiter ctrl 11Input1 data from input arbiter 1 to head splitter 1 is valid 0 otherwise Rdy arbiter ctrl 11output1 module head splitter 1 is ready to receive from input arbiter 1 0 otherwise Data arbiter ctrl 264InputInput data bus from input arbiter 2 Ctrl arbiter ctrl 28InputInput ctrl bus from input 33 arbiter 2 Val arbiter ctrl 21Input1 data from input arbiter 2 to head splitter 2 is valid 0 otherwise Rdy arbiter ctrl 21output1 module head splitter 2 is ready to receive from input arbiter 2 0 otherwise Data payloadfifo router 164outputoutput data bus to payload router Ctrl payloadfifo router 18outputOutput ctrl bus to payload router Rd en payloadfifo router 11InputRead enable Empty payloadfifo router 11output1 FIFO ctil payload 1 is empty 0 otherwise Data payloadfifo router 264outputoutput data bus to payload router Ctrl payloadfifo router 28outputOutput ctrl bus to payload router Rd en payloadfifo router 21InputRead enable Empty payloadfifo router 21output1 FIFO ctrl payload 2 is empty 0 otherwise Data center legacyfifo 164OutputOutput data bus to packing center Rd en center legacyfifo 11InputRead enable Data center packingfifo 114OutputOutput data bus to packing center Rd en center packingfifo 11inputRead enable Data center legacyfifo 264OutputOutput data bus to packing center Rd en center legacyfifo 21InputRead enable Data center packingfifo 214OutputOutput data bus to packing center Rd en center packingfifo 21inputRead enable clk1inputSystem clock running at 125MHz Rst n1inputSystem asynchronous reset signal 功能描述及数据流 本模块为主控制模块 子模块 control arbiter 通过监控两条输入通道的 ctrl bus 控制子模块 head spliter 的两个独立的例化 具体控制操作如下 若两条输入通道同时进来新的 IP 包 则同时处理两条通道 34 若输入通道 1 进来新 IP 包时 通道 2 中 IP 包已经在处理中 则阻塞通道 1 直 至通道 2 处理完毕再重新判决 若同时处理两条通道时 两条通道中的数据包深度相同 则无需 PADDING 操作 若通道 1 中数据包发送完毕时 ctrl bus 用 one hot code 标明结尾字节 通道 2 中数据包尚未发送完毕 则需对通道 1 中数据包补零 并在 ctrl bus 中用 0b11110000 标明此为 padding 数据 子模块 head spliter 分离包头和负载 并分别发往 head info extractor 提取封装 信息和 FIFO ctrl payload 暂存负载 子模块 head info extractor 提取包头中的源 IP 地址 并由此生成 4 bit 信源编号 source number 和 10 bit 代编号 generation number 将生成的封装信息存入 FIFO ctrl packinginfo 将原始包头存入 FIFO ctrl legacy 关键时序及状态机 Head spliter 状态机如图 3 2 5 RECEIVE No incomings LAST PAYLO AD TOTAL PAYL OAD HEAD AND P AYLOAD TOTAL HEAD PADDING Head count 4 Head count 4 Head over And Ctrl bus 0 Head over And Ctrl bus 0 green light Or Head info extractor Is not ready FIFO ctrl payload Is not ready FIFO ctrl payload Is not ready Head info extractor Is not ready Red light FIFO ctrl payload Is not ready Rst n 图 3 2 5 Head spliter 状态机 Control arbiter 时序图 35 Head spliter 时序图 36 3 Coding 子模块列表 Submodule name quantitydescription Payload router 1Determine by the arrival of packets from both channels whether should process coding or transport directly to packing module M64 8 multiplier 2Multiply 64 bit data from payload router by 8 bit random number from prng tap16 Prng tap1618 bit random number generator M72 72 adder 172 bit by 72 bit full adder M72to64 converter 1Convert data bus width from 72 bit to 64 bit Coding 模块的内部结构如图 3 2 6 图 3 2 6 coding 模块内部结构 本模块输入输出信号列表及说明 37 Signal name Bit width I Odescription Data payloadfifo router 164InputInput data bus from FIFO ctrl payload 1 Ctrl payloadfifo router 18InputInput ctrl bus from FIFO ctrl payload 1 empty payloadfifo router 11Input1 FIFO ctrl payload 1 is empty 0 otherwise Rd en payloadfifo rouer 11outputRead enable Data payloadfifo router 264InputInput data bus from FIFO ctrl payload 2 Ctrl payloadfifo router 28InputInput ctrl bus from FIFO ctrl payload 2 empty payloadfifo router 21Input1 FIFO ctrl payload 2 is empty 0 otherwise Rd en payloadfifo rouer 21outputRead enable Router status3outputOutput FSM state signal to packing FIFO and packing center coordinate with the control of packi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论