论文部分内容阅读
云计算和大数据等新应用模式的出现对计算机系统网络处理性能提出了更高的要求。与此同时,随着网络传输速度的快速提高以及处理器系统结构的不断改进,传统网络处理的机制、方法已经无法满足当前和未来计算机系统的需要。如何实现高性能网络处理已经成为了计算机系统研究领域的关键问题。 本文研究面向多核处理器的高性能网络处理关键技术。首先分析了传统网络处理的主要流程、系统软硬件特点、程序行为和时间开销分布情况,并讨论了并行网络处理亲和度相关问题。在此基础上,结合龙芯3号处理器芯片的研制,首先针对现有龙芯处理器架构进一步优化了网络子系统互联结构、数据传输机制和系统一致性协议,并提出利用cache锁技术加速系统网络处理过程,实现对cache中网络数据的高效访问和动态管理;之后对基于多核处理器的并行网络处理机制进行了研究,提出根据处理器实时任务负载信息和不同类型数据包特点将网络数据包分发至不同的处理器核中,实现负载均衡的并行网络处理;最后针对CC-NUMA系统,提出一种基于应用程序亲和度和设备连接特点的高效网络处理技术,有效减少了网络处理过程中的跨结点数据传输。 本文的主要贡献如下: 1.基于龙芯处理器网络子系统架构,优化了数据传输机制和系统一致性协议,并提出一套基于cache锁技术的网络数据访问、管理机制,消除数据在I/O总线上传输的开销。同时实现了一种支持地址锁定的cache系统,并设计了网络处理过程中相应操作系统和设备驱动的cache锁优化方案。 2.基于SMP系统,提出一种基于处理器硬件信息和数据包类型的并行网络处理技术,从而在保证数据亲和度的前提下最大程度利用多核处理器的硬件资源并实现任务负载均衡,在网络连接线程数较少的情况下依旧能达到较高的并行度,并克服系统进程迁移对并行网络处理造成的不利影响。 3.基于CC-NUMA系统,提出一种面向应用程序亲和度和设备连接特点的高性能网络处理技术。该技术通过将网络处理过程中的数据缓冲区和主要操作分为应用程序相关和网卡设备相关两部分,进而根据相应信息实现数据缓冲区的动态调整并合理分配任务操作,从而有效减少跨结点的数据传输,提升系统网络处理的性能和效率。 上述研究工作都在龙芯3号处理器相关系统上进行了验证并取得了很好效果,其中单核处理器系统网络传输带宽提升80%以上,多核处理器系统和CC-NUMA系统网络传输带宽分别提升约42%和32%。同时本文提出的一些技术和思想对其他I/O设备和系统的设计优化也有重要的借鉴意义。