基于PCIe协议的通信库设计和优化

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:allanvte001
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
现在的数据中心每天必须处理成千上万的独立用户所产生的请求和数据,云计算和大数据类的应用负载使得数据中心的内部流量和外部流量占比发生了巨大的变化,占比已经从原来的5∶95变成了75∶25。同时数据中心面临的负载越来越多样化,不同的负载对数据中心的资源要求不同,有的负载对内存需求大,有的负载对网络需求高,而有的负载对处理器性能要求高。为了满足不同的数据中心负载需求,数据中心应该能合理的动态调度资源,共享资源,这种需求对数据中心内部互连提出了更高的要求。为了提供性能更高,延迟更低的互连,硬件互连设备已经有了飞速的发展。除了传统的已经应用于HPC领域的互连协议例如10-Gigabit Ethernet,Infiniband,Myrinet,Quadrics等有所发展以外,一些新型的互连协议,例如RapidIO,PCIe等也开始被人尝试应用于数据中心互连。  随着硬件互连设备的飞速发展,硬件和传统的通信库之间所表现出来的差距日趋明显。这导致了数据中心无法充分利用上这些硬件设备所提供的高性能,特别是对于一些新型互连协议,这种差距更是明显。正是在这种背景下,本研究选择新型互连协议PCIe搭建的原型系统作为研究平台,研究如何在新型互连设备上开发高性能软件通信库。  首先,本研究测试并分析了使用PCIe协议作为互连设备的优缺点。其中包括:(1)PCIe支持互连的两个节点通过store/load指令直接访问远程内存;(2)PCIe在硬件协议层通过数据重传保证了数据传输的正确性;(3) PCIe支持多种DMA模式以满足不同的需求。基于以上优点,开发基于高性能软件通信库时做了以下优化:  1.使用store指令直接传输小数据包;  2.通过Write Flow Control模式而不是Read Flow Control模式进行流量控制;  3.使用Burst DMA模式替代Block DMA模式来进行大数据的传输;  除了根据硬件层面的特点进行优化,在软件层面也进行了优化。主要有:(1)将传统的TCP/IP软件协议栈从通信协议栈中移除;(2)在用户态下实现高性能软件通信库。通过这些优化效果,最终使得我们的通信库在带宽以及延迟上都逼近硬件设备所提供的原始性能峰值。其中,软件通信库能达到的带宽是2.87GB/s(其中硬件设备的理论峰值带宽是2.96GB/s),能到达的最低延迟是1.2us(其中硬件设备的测试得到的最低延迟是1.1us)。  在开发基于PCIe协议的软件通信库过程中发现以下问题:(1)由于PCIe本身支持的地址转换窗口很少,导致当软件通信库需要支持多个连接时不得不共享复用这几个地址转换窗口,这导致了控制上的复杂性;(2)通信库并没有实现真正意义上的用户态通信,因为硬件本身并没有提供虚实地址转换能力;(3)地址转换窗口在硬件层面并没有上下文的状态,导致一切控制都由软件来控制,这导致了一定安全性的隐患。因此基于以上问题,本研究后期开发了基于PCIe协议的网络通讯控制器Queue Pair,它通过内部实现了TLB来提供虚实转换的能力,同时,支持65535个通道以保证互连设备有足够多的通道进行数据传输,大大降低了软件通信库实现的复杂度,同时每个通道有自己的上下文,通过硬件来增大了通信的安全性。
其他文献
随着云计算服务的广泛推广和应用,数据存储压力持续增长。云时代的存储系统面对如此大的用户量,要求存储系统具有高性能和大容量等特点。传统的基于HDD的存储系统由于HDD本身的
无线光通信在无线高速信息传输应用上有很多优点,但其性能受大气湍流影响严重。对无线光通信系统的数字基带传输形式和带通传输形式进行研究,分析其在传输信道上基带信号和带通
智能交通系统(Intelligent Transport System,简称ITS)是解决城市道路交通拥堵问题的重要方式之一,就城市道路交通管理部门的管理对象而言,无论是基础设施还是交通管理设施都
在过去的二十年中,我们目睹了软件对人类社会日益增长的影响。这一趋势与Marc Andreessen在2011年发表的著名宣言“软件正在吞噬世界”相呼应。此外,软件定义的任何东西被Gar
21世纪是信息技术飞速发展的时期,随着IT技术应用的普及和管理理论的发展,传统的按职能管理组织的企业内部问题逐渐显露出来,工作流程也显得尤为重要。然而不幸的是,依然有许多流
随着现代科技的发展,越来越多的儿童有机会接触到计算机等现代科技设备。面向儿童的编程研究为儿童提供了一个学习体验编程过程的机会。传统编程语言中的语法、复杂指令及大量
在现代信息社会,政府、企事业单位相继建立了各自的信息管理系统,这些独立的系统创建之初没有统一的规划,彼此之间数据的存储环境和存储形式差异大,很难实现有效的数据交换和共享
随着三维图形技术的迅猛发展,三维网格被广泛的应用在计算机图形和仿真中逼近三维模型。为了支持这些应用,三维网格的传输量也越来越大。同时,随着众多成熟的三维扫描和建模技术
无线通信的快速发展,嵌入式应用的日益复杂,对基带DSP(Digital Signal Processor)的处理能力提出了更高的要求,同时又需要满足一定的功耗、面积等设计约束,使得DSP的结构复杂度和
伴随互联网新型应用的广泛普及和飞速发展,传统程序设计方式面临着多核化、网络化等硬件变革所带来的分布并发程序设计的挑战。为了应对上述挑战,支撑互联网新型应用的高效开发