支持虚拟化和带宽分享的网络适配器FPGA实现硕士论.doc_第1页
支持虚拟化和带宽分享的网络适配器FPGA实现硕士论.doc_第2页
支持虚拟化和带宽分享的网络适配器FPGA实现硕士论.doc_第3页
支持虚拟化和带宽分享的网络适配器FPGA实现硕士论.doc_第4页
支持虚拟化和带宽分享的网络适配器FPGA实现硕士论.doc_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

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

文档简介

电 子 科 技 大 学UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA硕士学位论文MASTER THESIS论文题目支持虚拟化和带宽分享的网络适配器FPGA 实现学 科 专 业通信与信息系统学 号201121010831作 者 姓 名唐 远 开指 导 教 师谢军 副教授分类号密级UDC 注 10 位 论 文 支持虚拟化和带宽分享的网络适配器FPGA 实现唐 远 开指导教师谢军 副教授电子科技大学成 都(姓名、职称、单位名称)申请学位级别 硕士 学科专业 通信与信息系统提交论文日期 2014 年 5 月 论文答辩日期2014 年 6 月学位授予单位和日期 电子科技大学2014 年 6 月 30 日答辩委员会主席评阅人注 1:注明国际十进分类法 UDC的类号。IMPLEMENTATION OF NETWORK ADAPTER SUPPORTS VIRTUALIZATION AND BANDWIDTH SHARING ON FPGAA Master Thesis Submitted to University of Electronic Science and Technology of ChinaMajor:Information and Communication SystemAuthor:Tang Yuan KaiAdvisor:Xie JunSchool:School of Communication and InformationEngineering独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。作者签名:日期: 年 月 日论文使用授权本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。(保密的学位论文在解密后应遵守此规定)作者签名:导师签名:日期:年 月摘要摘要伴随着以太网技术的快速发展,万兆以太网技术已经变得成熟。再加上 CPU 的性能不断提高,PCI Express 总线的带宽越来越宽。万兆以太网以网络适配器形 式通过 PCI Express 总线部署在服务器平台上已经变得现实。与此同时,云计算的 概念被提出后,云计算的热潮也席卷了各个行业,众多 IT 企业和电信运营商都在 向云计算进军,都已经推出了自己相关的服务。随着虚拟化技术的发展和云计算 规模的壮大,在数据中心中的服务工作量日益增长,租户数量也随之增多,传统 的数据中心网络也暴露出了很多局限性。局限性主要集中在可扩展性和资源合理 分配问题上。可扩展性是当规模庞大后再扩建带来成本高,而且会影响原有的网 络服务质量。分配在问题上,像 CPU 和内存等硬件资源有合理的分配管理,但是 网络带宽仍然是使用传统的“尽力而为”方式被共享。网络中经常会出现堵塞, 租户正面临着带宽分配不公平的困境。网络资源的分配变成了一个迫切而棘手的 问题。虽然很多相关的技术解决方案目前也有被提出,但是那些解决方案都有各自 的局限性,到目前为止没有一种完美的解决方案。针对这些问题,本文提出了一 种与机架交换机一起控制发送带宽的解决方案,在一定程度上解决了带宽分享问 题,并将数据中心网络拓扑中的服务器端网络适配器硬件部分进行了实现。网络适配器硬件部分是在 FPGA 上进行实现的,采用 Altera 的 Strativ IV 530芯片。实现中采用的主要技术如下:硬件使用 DMA 技术通过 PCI Express 总线与 CPU 实现通信;接口使用万兆以太网接口;虚拟机队列的调度采用差额轮询调度。本设计主要成果如下:整体来说,在一定程度解决带宽分配问题的同时,扩 展性问题上也有良好的解决。一台服务器上支持 16 个虚拟机,一个租户中的虚拟 机数量可以软件动态控制分配。细节来说,在支持 PCI Express 2.0 总线基础上, 采用高性能 DMA 技术,特别是 DMA 读内存的速率得到大幅提升,以适应本设计 需求;万兆以太网接口中将 MAC 层进行了设计实现;调度中对差额轮询调度在 FPGA 上进行了实现。实现过程中,采用先功能仿真后下板测试,最终设计得到实 现和验证。关键词:网络适配器,万兆以太网,带宽分享,PCI Express 总线,直接存储器访问IABSTRACTABSTRACTWith the rapid development of Ethernet technology, 10-Gigabit Ethernet technology has become mature. In addition, due to the continues improving CPU performance and the wider and wider bandwidth of PCI Express, it is possible to deploy 10-Gigabit Ethernet on the server platform in the form of network adapter via PCI Express. On the other hand, the development of virtual technology and the expansion of cloud computing cause a growing number of tenants and increasing workload in the data center. Therefore, limitations in traditional data center network have been revealed, which are concentrated in scalability and rational allocation of resources. The scalability refers to the high costs and reduced network quality brought by scale expansion. And the allocation of resources refers to the best-effort sharing manner of bandwidth unlike the allocation of hardware resources such as the CPU and memory is rational, which will lead to jams and unfair bandwidth allocation. As a result, the allocation of network resources has become a critical and difficult issue.Although many related technology solutions have been proposed, they all have some limitations. So far none of them is perfect. To solve these problems, we propose a solution of controlling the egress bandwidth with rack switch together, which solves the problem of bandwidth sharing to a certain degree. Furthermore, we implement the hardware part of the network adapter in server of the data center network topology.The hardware part of network adapter is implemented on the FPGA, by Alteras Strativ IV 530 chip. The main technologies used are as follows: hardware communicates with the CPU using the DMA technology through the PCI Express; the interface of Ethernet is 10-Gigabit Ethernet; the scheduling of virtual machine queues uses the deficit round-robin scheduling.The main results of the design are as follows: in a word, the design solves the bandwidth allocation and the scalability issues to a certain degree. It supports 16 virtual machines on a single server; the number of virtual machines in a tenant can be dynamically distributed and controlled by software. In detail, on the basis of support PCI Express 2.0, using high-performance DMA technology, especially the rate of DMA read memory has been significantly improved to meet the design requirements; the MAC layer in10-Gigabit Ethernet interface has been designed and implemented; theIIABSTRACTdeficit round-robin scheduling has been implemented on the FPGA. In the process of implementation, we first carry out functional simulation, then test on the board, finally realize and verify the design.Keywords: Network Adapter, 10-Gigabit Ethernet, Bandwidth Sharing, PCI Express, Direct Memory Access( DMA)III目录目 录第一章 绪论.11.1研究背景.11.1.1以太网的高速发展.11.1.2云计算概念的提出.11.2研究问题的提出.21.3研究现状.31.4论文的主要工作.41.4.1研究内容与意义.41.4.2本文的结构.4第二章 协议分析与技术介绍.62.1万兆以太网.62.1.1万兆以太网接口.62.1.2无损以太网与拥塞处理.82.2 PCI Express 总线介绍.92.2.1 PCI Express 的优越性.92.2.2 PCI Express 总线分层结构.112.2.3 PCI Express 总线事务层介绍.122.2.3.1 事务层包(TLP)介绍.122.2.3.2 PCI Express 事务介绍.142.2.4 PCI Express 链路初始化和训练.152.3高性能 DMA 技术.152.3.1 常见的 DMA 传输方式.152.3.2 影响 PCI Express 系统上 DMA 传输效率的因素分析.162.3.3高性能的存储器读写技术.162.4轮询调度技术.182.4.1 FCFS 类型的调度.182.4.2 RR 类型的调度.192.4.3 GPS 相关调度.192.5本章小结.21第三章 总体设计的架构.22IV目录3.1简单的数据中心的系统部署.223.2带宽分享要求下各设备的设计要求分析.233.3服务器端网络适配器的总体框架.243.3.1网络适配器软件和硬件任务分配.243.3.2网络适配器硬件设计的总框架.263.4硬件开发环境和相关设计工具简介.273.5本章小结.27第四章 硬件设计方案及 FPGA 实现.284.1硬件中的调度器实现.284.1.1调度器的位置放置选择.284.1.2调度器算法的实现.294.1.2.1 DRR 算法原理及参数等级分析.294.1.2.2 本设计中 DRR 算法的实现.304.2 DMA 控制器实现.304.2.1接收和发送引擎模块的实现.314.2.2 DMA 高速写内存的实现.344.2.3 DMA 高速读内存的实现.354.2.3.1原设计方案的分析.354.2.3.2多种设计方案的提出并比较.364.2.3.3最终实现的提速方案.374.2.4中断管理模块的实现.394.2.5寄存器配置与管理模块的实现.404.3 MAC 层实现.404.3.1 MAC 层接收模块的实现.414.3.2 MAC 层发送模块的实现.434.3.3端到端的流量控制实现方案.434.4关于本地流量的实现方案.444.5提高带宽利用率和必要的带宽限制.464.6本章小结.47第五章 仿真与测试.485.1功能仿真.485.1.1 应用于 PCI Express 上的 DMA 控制器仿真.485.1.1.1仿真平台的搭建.48V目录5.1.1.2验证 PCI Express 硬核是否正常工作.505.1.1.3写内存的仿真.505.1.1.4读内存的仿真.525.1.1.5寄存器配置与管理的仿真.555.1.2调度器的仿真.565.1.3 MAC 层的仿真.585.1.3.1 MAC 层发送模块的仿真.595.1.3.2 MAC 层接收模块的仿真.595.2 下板测试.605.2.1时序情况.605.2.2功能测试.605.2.2性能测试.625.2.2.1 DMA 读写内存速率测试.625.2.2.2万兆以太网和调度的速率测试.645.3 本章小结.70第六章 结束语.716.1 论文总结.716.2 工作展望.71致谢.72参考文献.73攻读硕士学位期间的研究成果.75VI图目录图目录图 2-1 10G 以太网接口结构图6图 2-2 以太网帧格式图7图 2-3 PCI Express 的双单工总线11图 2-4 PCI Express 总线分层结构和相关的数据包类型12图 2-5 TLP 的基本格式12图 2-6 通用 TLP 头标格式13图 2-7 存储器读请求响应的延时累加示意图17图 2-8 存储器读请求响应的延时覆盖示意图17图 2-9 同时存储器读写时链路上的数据包18图 2-10 WFQ 和 WF2Q 使用的调度模型图20图 2-11 WFQ 和 WF2Q 分组选择上的区别示意图20图 3-1 带宽分享系统模型22图 3-2 输出带宽控制机制示意图23图 3-3 软件和硬件的调度任务分配图25图 3-4 网络适配器硬件的总框架26图 4-1 调度器位置放置方案28图 4-2 DMA 控制器的模块划分图31图 4-3 3DW 存储器请求的 TLP 头标格式32图 4-4 3DW 带数据完成的 TLP 头标格式32图 4-5 发送模块的时序图33图 4-6 接收模块的时序图33图 4-7 原方案 DMA 读内存流程图35图 4-8 多个描述符组成的描述符块格式37图 4-9 DMA 读内存提速的设计方案38图 4-10 两个读请求后返回的完成时序图39图 4-11 中断模块时序图40图 4-12 MAC 层的模块划分图41图 4-13 MAC 层接收模块帧处理流程42图 4-14 数据对齐处理示意图42图 4-15 纯软件实现本地流量的方案架构44VII图目录图 4-16 硬件实现本地流量的方案架构45图 4-17 对端交换机实现本地流量的方案架构46图 5-1 总线功能模型结构图48图 5-2 PCI Express 默认下的链路训练信息49图 5-3 PCI Express 协商至第二代链路训练信息50图 5-4 往内存写 64 字节帧的打印信息51图 5-5 往内存写 64 字节帧的时序图51图 5-6 往内存写 2000 字节帧的打印信息52图 5-7 往内存写 2000 字节帧的时序图52图 5-8 读内存中 2000 字节的帧打印信息53图 5-9 读内存中 2000 字节帧的时序图53图 5-10 连续读内存中 2000 字节帧的初始读请求的时序图54图 5-11 连续读内存中 2000 字节帧的读请求和完成返回的时序图54图 5-12 乱序处理后的延时示意图54图 5-13 各个 VM 队列接收的统计量示意图55图 5-14 寄存器配置与管理的打印信息55图 5-15 配置寄存器的时序图56图 5-16 读取寄存器的时序图56图 5-17 调度器和 MAC 层的仿真平台结构图57图 5-18 调度器的时序图58图 5-19 MAC 层发送模块的时序图59图 5-20 MAC 层接收模块的时序图59图 5-21 时序分析报告图60图 5-22 网卡功能测试场景61图 5-23 配置 IP 与 Ping 操作61图 5-24 Ping 操作期间用 Wireshark 抓到的数据61图 5-25 DMA 只读内存速率测试结果图62图 5-26 DMA 只写内存速率测试结果图63图 5-27 DMA 同时读写内存速率测试结果图64图 5-28 万兆以太网和调度的速率测试数据流示意图65图 5-29 全部无约束下 MAC 层发送方向速率测试结果图66图 5-30 MAC 层接收方向速率测试结果图66图 5-31 全部无约束下各个虚拟机实际使用带宽柱形图67VIII图目录图 5-32 各个虚拟机分配的带宽权重值柱形图67图 5-33 部分虚拟机带宽受限下 MAC 层发送方向速率测试结果图68图 5-34 部分虚拟机带宽受限下各个虚拟机实际使用带宽柱形图68图 5-35 全部带宽限制下 MAC 层发送方向速率测试结果图69IX表目录表目录表 2-1 各层接收和发送通路上数据对应关系8表 2-2 PCI Express 各种链路上的总带宽10表 2-3 PCI 和 PCI-X 各种时钟和位宽的总线带宽11表 2-4 TLP 中 Fmt 和 Type 字段编码对应的事务类型13表 3-1 PCI Express 硬核的参数表26表 4-1 不同理论等级带宽与权重值的对应关系30表 4-2 状态字段编码与对应意义的描述32表 4-3 DMA 操作全部动作的顺序及其描述36表 5-1 仿真中各个虚拟机带宽权重值分配表57表 5-2 全部带宽限制下各个虚拟机使用带宽与分配的理论带宽对比表69X缩略词表缩略词表英文缩略英文全称中文释义FCFibre Channel光纤通道10 GE10-Gigabit Ethernet万兆以太网PaaSPlatform as a Service平台即服务SaaSSoftware as a Service软件即服务IaaSInfrastructure as a Service基础设施即服务PHYPhysical Layer物理层RSReconciliation Sublayer调和子层MACMedia Access Control媒体接入控制XGMII10 Gigabit Media Independent Interface万兆媒体独立接口PMDPhysical Medium Dependent物理相关子层PMAPhysical Medium Attachment物理媒体接入层PCSPhysical Coding Sublayer物理编码子层CRCCyclic Redundancy Check循环冗余码检验DMADirect Memory Access直接存储器访问PCI ExpressPeripheral Component Interconnect Express高速外设互连标准PCI-SIGPeripheral Component Interconnect Special周边元件互连特别兴趣Interest Group小组TLPTransaction Layer Packets事务层包FCFSFirst Come First Serve先来先服务RRRound Robin轮询调度WRRWeighted Round Robin权重轮询调度DRRDeficit Round Robin差额轮询调度GPSGeneralized Processor Sharing通用处理器共享WFQWeighted Fair Queuing加权公平调度WF2QWorst-case Fair Weighted Fair Queuing最坏情况加权公平调度WF2Q+Worst-case Fair Weighted Fair Queuing+改进的最坏情况加权公平调度DRRDeficit Round Robin差额轮询VMVirtual Machine虚拟机DWDouble Words双字XI第一章 绪论第一章 绪论1.1 研究背景1.1.1 以太网的高速发展以太网发展至今 30 多年,网速、介质和技术都得到跨越式提升。网速上从初 始的 2.94Mbps 提升到了现在的 100Gbps;介质上同轴电缆从粗到细,再到双绞线、 光纤,直到无线网络;技术上从 CSMA/CD 总线结构到交换机,再到无线接入点。 回顾这 30 年时光,以太网经历了多次标准化过程。在 70 年代末,包括以太网在 内的多种局域网技术涌现出来。在 80 年代初,DEC、Intel 和 Xerox 发布了“以太 网,一种局域网:数据链路层和物理层规范 1.0 版”,这

温馨提示

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

评论

0/150

提交评论