I/OAT2的新特性
英特尔计划在2007年将会全面升级DP和MP服务器平台,无论是定位于嵌入式应用的Cranberry Lake平台、还是定位于主流双路处理器的Stoakley平台、或者是定位于多路处理器的Caneland平台,都将会支持新一代的I/OAT2技术(代号Crystal Beach2)。
I/OAT2有两个主要的设计目的,第一个是进一步增强数据中心网络I/O能力,第二个继续提供英特尔I/OAT的无状态架构优势。同样,I/OAT2依然是一个平台级的I/O优化方案,涉及到了CPU、芯片组、网卡控制器、等多个方面。
第一代的I/OAT通过增强软件接口、软件预取到CPU、优化数据流等措施,实现对于TCP协议栈的优化处理。新一代的I/OAT2利用DCA(Direct Cache Access,直接高级缓存访问)技术,避免频繁存取内存对系统性能所造成的负面影响。
第一代的I/OAT通过芯片组支持QuickData技术,该技术通过直接将网络数据放入内存中无需处理器参与,从而加速了标准网络数据的传送过程。英特尔在此基础上增加了DCA和MSI-X等功能,以提升数据传输和复制的效率。
支持IOAT2的网卡控制器不仅支持无状态卸载,TCP分配&效验和卸载,优化多队列&数据流,分离头部/有效负载等功能,还通过增加对于DCA、MSI-X、中断快速响应、头部分离/复制等功能的支持,提升IO效能。
可以看到DCA和MSI-X两个功能是此次IOAT2所带来的主要改进。DCA(Direct Cache Access,直接高级缓存访问)基本工作原理是使得CPU高速缓存中的数据可以被网络控制器优先访问,一方面充分利用缓存中的数据,另外一个方面利用高速缓存低延迟的特性,来避免CPU频繁的访问内存,降低系统开销。DCA有两种基本的工作模式,当处理小型I/O任务的时候,甚至不需要芯片组中QuickData引擎的参与,只有当处理大型I/O任务的时候才需要。
MSI-X(Extended Message Signaled Interrupts,扩展消息信号中断)是MSI(消息信号中断)的增强版本,是PCIe 1.1规范中增加的新特性,可以将PCIe总线中的数据封包进行更灵活的分割,满足不同应用的需求。在I/OAT2中结合了直接内存访问、选择性中断行为的流量区别等功能,提供了更快的中断速度。
I/OAT2还支持头部分离/复制这一新特性。头部分离是TCP/IP协议处理过程中一个必不可少的过程,I/OAT2将来自数据/有效负载的TCP、IP头部放入不同的内存缓冲中。头部复制动作则是将头部进行拷贝并放置于不同的缓冲中,然后将整个数据包放入另一个缓冲中。头部复制可用于处理更长的头部。
第一代I/O加速技术只能应用于GbE网络设备上,新一代的I/O加速技术可扩展应用于10GbE网络设备上——在10GbE环境中,其作用将会更加明显。