● 资源分区的不同
第一个CMP类型的双核是最简单的。两个内核只执行一个线程。在这种情况下是没有资源共享的,缓存等也被限制在一定范围内。因此,各个CPU内核之前完全不会相互干扰,各自跑各自的线程。
多线程架构的比较(点击放大)
尽管CMP的性能较高,但是由于2个CPU内核是作为一个整体资源的,所以成本很高。理论上讲,性能提高100%的话,CPU内核的成本也提高100%。如果翻倍的话,双核变四核,所需资源是原来的4倍。
最下面的SMT让1个CPU内核跑两个线程,除了运算资源之外,两个线程共享例如缓存、调度机制、指令的获取和解析等大部分资源。Intel方面称,每个线程只共享寄存器和缓冲等资源,SMT的优点在于加载成本较低。Intel解释说,SMT本身加载的资源所占比例很小,然而,性能上的提升也是有限的,这是因为线程之间会不可避免地发生冲突。AMD认为,Intel Hyper-Threading技术提高系统性能最多大约在25%。
因此可以说,SMT是一项极耗费CPU资源、不追求双线程性能的技术理念。尽管Intel称加载成本大约只占几个百分点,不过实际中可能更多。
如果SMT要提高性能的话,CPU内核就需要更多运算资源和更广泛的指令调度。AMD曾经指出,CPU内核提高性能的确是一个难题(当然,Intel的Nehalem架构体现了加强的指令调度与Hyper-Threading是无关的)。
不管怎样,AMD预计部署SMT的成本要比Intel所说的多,因此,似乎可以看出,SMT并不是一项高效的技术,实际上并不是这样。