根据Intel的网络处理器IXP2004的产品资料,其核心处理单元
微引擎uEngine针对网络数据包处理做了专门的优化。其中最
重要的优化就是硬件线程,“每个uEngine可以管理8个硬件线程,
并可达到线程间的切换零延迟”。
硬件线程是一种SMT(Simultaneous Multithreading Technology)
技术。通过在一个CPU上维护多套指令状态保存器,使得几个线程
可以共用该CPU的运算单元。当一个线程I/O阻塞时,其它线程可以
快速被切换。这种技术和Xeon系列的HyperThreading技术实质
是一样的。
超线程技术对于程序执行效率的提高主要来源于当其中一个
线程出现I/O瓶颈时(比如cache miss, branch misprediction,
或者data dependency时),另一个线程可以迅速切入。只有当
这种效应比较严重时,超线程才能提高大幅度系统性能,因为即使
硬件线程切换也会有开销的。
一般来说,对于包的实时处理中,这种瓶颈应该不会特别多,
因此硬件线程可能并不能很有效提高包处理的性能。
参考资料:
http://en.wikipedia.org/wiki/Hyperthreading
http://www.theregister.co.uk/2002/06/18/what_the_hell_is_hyperthreading/
No comments:
Post a Comment