比特网 发表于:14年05月09日 09:17 [转载] 比特网
CPU和VMM
VMM能发展到今天这个地步是无人始料的,一开始就是玩玩,没想到玩了个大的出来。有不少人持有上述观点,其实这个观点只是表象。虚拟机技术起源于大型机,中小型机上早已也使用了多年,所以VMM可并不是玩玩。大机小机都是封闭市场,技术也确实牛。开放市场领域很多技术其实都是源自大型机小型机。虚拟机显然是单机性能过剩,而多机整体资源又无法得到全局细粒度池化分配时代的产物。VMM虚拟CPU,虚拟IO设备,虚拟内存,一开始全用软件实现,每一条指令解释执行,后来优化了设计,但最终还是要监控和截获+虚拟那些敏感和特权指令,每个进程还要虚拟出额外页表从而虚拟内存,IO需要经历重重内存拷贝才能发出去一个包,要想商用的话,软件各方面开销实在是搞不定了,此时还得硬件出马,在CPU层面提供硬件辅助,IO设备也开始有了SRIOV/MRIOV的方案,我总感觉这次硬件反而有点“过度”定义了,被软件骗了一回。为什么呢?就因为硬件资源不能做到池化和细粒度切分,才会产生VMM这个尴尬的东西,而此时硬件仿佛走火入魔了,弄出一系列复杂的技术来支撑VMM。其实硬件还有另一条路可以走,同样可以实现VMM类似的效果,那就是让硬件变得可以切分,而不是用软件去切分。这条路在小机系统上曾经有人尝试过,采用总线级别的隔离开关来切分不同的CPU和内存以及IO槽位。要实现细粒度切分的前提是必须把硬件最小切分粒度降下来,单CPU使劲增加性能其实已经不是一条比较明智的路线了。近几年众核CPU不断冒出头来,单CPU128个核心已经不是什么惊讶之事了,但是由于生态尚未成熟,它们目前仍被局限在并行度高耦合度低的处理场景比如网络包处理等。另一个迹象就是ARM生态的崛起,种种迹象表明这很有可能是一条光明大道。但是如何将传统生态导向这个道路上就不那么简单了。我们看到Intel正在搞SiPh硅光方案,其致力于硬件资源的灵活拼搭,如果粒度足够细,VMM其实就可以退出舞台了,这将又是一场硬件拆台软件的血腥战斗。