Nehalem: Virtualization & SSE4.2
Nehalem:虚拟化与SSE4.2
虚拟化作为Intel架构的重点,一直是Intel处理器的重要特性,每次处理器架构的更新,都会得到更多的支持。Nehalem也不例外,改进的地方虽然不多,然而这些改动大大提高了虚拟化性能。这些改动包括了两个部分:EPT扩展页表和VPID虚拟处理器ID,其中前者消灭了当前存在的虚拟机内存操作中存在的大量内存地址转换(以前使用软件来模拟EPT的功能,现在用硬件实现了,据说虚拟化延迟比Penryn降低了33%),后者则减少了对TLB的无效操作,这些都明显提升了虚拟机的性能。
|
I/O虚拟化的关键在于解决I/O设备与虚拟机数据交换的问题,而这部分主要相关的是DMA直接内存存取,以及IRQ中断请求,只要解决好这两个方面的隔离、保护以及性能问题,就是成功的I/O虚拟化。在以前,Intel提供的设备虚拟化技术(VT-d,VT是Virtualization Technology虚拟化技术,d是device设备的意思)多出现在服务器芯片组上,现在随着Nehalem的出现,VT-d技术也开始流入桌面/移动市场(Core i7主板上已经可以见到VT-d功能)。
Core i7主板:Intel X58SO主板 - VT-d设置界面 |
Core i7主板:Intel X58SO主板 - VT-d设置界面 |
以往VT-d技术集成在北桥MCH内,和内存控制器的关系非浅
和处理器上的Intel VT-i和VT-x一样,Intel VT-d技术是一种基于North Bridge北桥芯片(或者按照较新的说法:MCH)的硬件辅助虚拟化技术,通过在北桥中内置提供DMA虚拟化和IRQ虚拟化硬件,实现了新型的I/O虚拟化方式,Intel VT-d能够在虚拟环境中大大地提升 I/O 的可靠性、灵活性与性能。
由于现在的x86 CPU都可以通过解码器将x86指令解码为uops再执行,而这个解码阶段是可以通过Microcode ROM控制的,添加新的解码方法很容易,因此现在Intel处理器的指令集扩充显得有些任意:指令数目不停地增多。当然,从编程的角度来看,使用预先给出的硬件指令到底是会比自己进行繁琐的程序设计要方便得多,而性能也获多或少总有些提升:
SSE4指令集是自SSE以来最大的一次指令集扩展,它实际上分成了三个阶段来更新:提前发布的SSSE3、Penryn中出现的 SSE4.1和Nehalem中出现的SSE4.2,其中成熟的Penryn中集成的SSE4.1占据了大部分的指令,因此Nehalem中的SSE4指令集更新很少。要发挥新指令集的功能,需要在程序设计方面的支持,Intel自己的编译工具自然有所提供——从10.0版本开始。