启用I/OAT功能的三个必备条件
要正确的启用I/OAT功能,三个方面的条件缺一不可:
-
操作系统的支持
Windows Server 2003 SP1对于I/OAT功能提供了支持,但是需要安装KB912222更新程序,微软网站上是这样介绍的:
“Microsoft Windows Server 2003 可伸缩网络包包含将网络处理转移到硬件的功能。 TCP Chimney 构架具有允许将 TCP/IP 处理转移到硬件的功能。 Receive Side Scaling 允许将接收数据包的处理分配给多个 CPU。 TCPA 也是一种转移功能,这种功能可以使用 PCI 总线上的硬件 DMA 引擎来协助接收处理。 安装本更新程序之后,可能需要重新启动计算机。”
主流的Linux操作系统也已经提供了对于I/OAT功能的支持。
-
硬件设备的支持
笼统的来讲,目前只有基于Bensley平台的产品才支持I/OAT。比如,英特尔最新的双核Xeon 5000/5100系列处理器为处理网络堆栈进行优化,处理该类操作效率会更高。MCH芯片则整合了数据移动引擎(Data movement engine)。另外,在MAC层实现了硬件辅助加速——这个部分是需要我们重点强调的,属于Bensley平台体系的南桥芯片有两款:6311/6321ESB,只有其中的6321ESB支持英特尔I/OAT。
图3-1: HY82563是一款配合6321ESB所整合的MAC功能的双端口PHY 芯片,目前我们所接触到的Bensley平台均采用了这颗芯片 |
-
驱动程序的支持
如果要正确的启用I/OAT功能,用户还需要安装支持I/OAT功能的网卡驱动程序。如果安装的驱动程序不支持I/OAT功能,网卡还是可以正常工作的,但是在设备管理器中会发现网卡设备前面有黄色叹号的标记。
图3-2 |
英特尔提供了一个名称为“Intel I/OAT System Check”的工具,这个工具可以检验用户的硬件是否支持I/OAT,I/OAT功能是否正确启用。图4-1显示该工具侦测到硬件平台支持I/OAT但是并没有启用。