业界在处理器结构的问题上存在着两种不同的方案——同时多线程处理器(SMT处理器)和单芯片多处理器(CMP)。先讲讲CMP,Chip Mulitprocessor。随着大规模集成电路技术的发展以及半导体制造工艺的提高,人们逐渐产生了将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。SMP技术已经相当成熟,因此CMP结构设计起来比较容易,但是两个物理核心整合在同一块芯片之中,晶体管数量,芯片面积以及芯片发热量都是突出的问题,造成后端设计和芯片制造工艺的要求较高。正因为这些原因,SMP技术在流行了一段时间之后慢慢失去了发展的动力,厂商们纷纷转向另一种方案——SMT处理器的研发工作。
多线程处理器对线程的调度与传统意义上由 *** 作系统负责的线程调度是有区别的。它完全由处理器硬件负责线程间的切换。由于采用了大量的硬件支持,所以线程的切换效率更高。线程高效调度的目的就是要尽可能减少处理器处于闲置状态,通过有效的线程切换来获取处理器在相同工作时间内更高的工作效率。而SMT最具吸引力的是它只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以获得显著的效能提升。这对于桌面低端系统来说无疑十分具有吸引力。因为价格始终是桌面系统的关键因素之一,像高端平台那样去换取高性能显然是不合适的。因此,SMT比起CMP显然更适合于桌面市场。
虽然Intel并不是多线程技术的主导力量,但多线程技术获得大众广泛关注却源于Intel。在其新一代基于奔腾4的Xeon处理器中,Intel使用了超线程(Hyperthreading)技术,而这一技术的核心就是同时多线程(SMT)。其实Intel一直都想将多线程技术逐步融入到自己的产品当中,在Itanium的EPIC核心身上,我们看到了ILP(Instruction-Level Parallelism)——指令级并行技术的身影。
对于处理器的并行处理而言,将并行处理“贯彻”到指令级无疑是最好的选择,因为分得越细,越有利于任务的调度,处理器的空闲机会就越少,并发处理的能力就越强。但对于性能、价格远不在一个层次的x86处理器身上使用类似的技术远没有想象中那么简单,而且碍于架构和缓存容量的因素,能不能发挥出相同的威力也是个未知之数。再三考虑之下Intel决定将ILP的思想嫁接到新一代的Pentium4处理器当中,这就是Hyper-Threading。不同的是,Hyper-Threading是TLP(Thead-Level Parallelism)线程级的并行技术。
超线程技术可以使单一的物理处理器执行两个独立的线程。从架构上说,使用超线程技术的IA-32处理器由两个逻辑处理器构成,并且每一个逻辑处理器都有各自的架构描述。运行过程中,每一个逻辑处理器均可独立地挂起、中断以及直接执行特定线程而不受另一个逻辑处理器的影响。
和传统的双处理器平台使用两个独立的物理处理器(如Intel Xeon处理器)不同,使用超线程技术处理器的两个逻辑处理器共享处理器的核心,包括执行引擎,缓存,系统总线界面和固件等。超线程技术能够更好的发挥的Intel的NetBurst微架构,实现IA-32处理器在一般 *** 作系统,工作站以及服务器应用软件的性能。
事实上,目前的 *** 作系统(包括Windows和Linux)将任务分解为进程和线程,并能够自由地安排和分派到处理器。相似的工作方式我们可以在数据库引擎、科学计算程序、工程软件和多媒体软件等很多高性能应用程序中都看到。为了能够进一步发挥处理器的效能,目前的不少 *** 作系统和应用软件都支持使用SMP技术的多处理器架构。
超线程技术通过同一个核心中两个独立的逻辑处理器实现目前 *** 作系统和应用程序普遍支持的进程级和线程级的并行处理。每个线程可以由两个逻辑处理器之一执行。两个线程的指令同时分派到处理器核心,处理器核心通过乱序执行机制并发地执行两个线程,使处理器在每一个时钟周期中都保持最高的运行效率。
要真正发挥超线程处理器的威力,除了硬件方面具有NetBurst微架构之外,还需要配合带有多线程代码的IA-32指令。Intel的NetBurst微架构是专门针对单指令流设计并优化的,但即使是执行最优化的代码,运行周期当中处理器的执行单元都不能完全被利用。平均来说,当处理器执行多种复合的IA-32指令时,NetBurst架构中仅有35%的执行单元被利用(在这一点上AMD的架构更有优势)。为了使剩余的执行单元能被充分利用起来,超线程技术通过自身的并行多线程代码为处理器核心分配第二个可执行线程。两个被执行的线程通过公共的指令缓冲池向处理器提供指令编排,两个指令的相关性越少,两者的资源冲突就越少,因而处理器当中利用起来的执行单元数就越多,这样就使指令的执行速度得到提高。
使用超线程技术的IA-32处理器对于软件而言等同于两个独立的IA-32处理器,和传统的多处理器系统相似。这使得原来为传统多处理器系统设计的应用软件不需要任何修改就可以直接在使用超线程技术的IA-32处理器上运行。只不过对于多处理器系统而言指令是向多个处理器分发,而现在指令分发的对象是相对独立的逻辑处理器。
在固件(BIOS)方面,超线程处理器的运作模式和传统多处理器系统相似。支持传统双处理器和多处理器的 *** 作系统也可以通过CPUID指令侦测使用超线程技术的IA-32处理器的存在。但尽管目前的应用代码都能在使用超线程技术的处理器上正常运行,但为了获得最理想的运行效果,简单的代码修改还是必须的。
在得到 *** 作系统和应用软件的支持之下,使用超线程技术的处理器比起普通处理器有30%的额外性能提升。超线程技术应用到多处理器系统时,效能的提升和处理器的数量基本成线性关系增长。在理想状况下,不需要增加额外成本就能有如此可观的性能增幅,Intel的超线程技术应该有不错的发展潜力。当然30%只是理想情况下,实际运行当中超线程技术可能会带来缓存命中率下降,物理资源冲突以及内存带宽紧缺等问题,这些负面影响不但会使影响超线程技术所带来的性能增幅,在极端情况下还可能造成性能的不升反降,所以要进一步发挥超线程技术的威力,还需要Intel和其他软件厂商在硬件和软件方面做进一步的完善。
通常我们所说的CPU的“制作工艺”指得是在生产CPU过程中,要进行加工各种电路和电子元件,未来有向纳米(1纳米等于千分之一微米)发展的趋势,精度越高,生产工艺越先进。在同样的材料中可以制造更多的电子元件,连接线也越细,提高CPU的集成度,CPU的功耗也越小。制造工艺的微米是指IC内电路与电路之间的距离。制造工艺的趋势是向密集度愈高的方向发展。密度愈高的IC电路设计,意味着在同样大小面积的IC中,可以拥有密度更高、功能更复杂的电路设计。微电子技术的发展与进步,主要是靠工艺技术的不断改进,使得器件的特征尺寸不断缩小,从而集成度不断提高,功耗降低,器件性能得到提高。芯片制造工艺在1995年以后,从0.5微米、0.35微米、0.25微米、0.18微米、0.15微米、0.13微米、90纳米、65纳米一直发展到目前最新的45纳米,而32纳米制造工艺将是下一代CPU的发展目标。
提高处理器的制造工艺具有重大的意义,因为更先进的制造工艺会在CPU内部集成更多的晶体管,使处理器实现更多的功能和更高的性能;更先进的制造工艺会使处理器的核心面积进一步减小,也就是说在相同面积的晶圆上可以制造出更多的CPU产品,直接降低了CPU的产品成本,从而最终会降低CPU的销售价格使广大消费者得利;更先进的制造工艺还会减少处理器的功耗,从而减少其发热量,解决处理器性能提升的障碍.....处理器自身的发展历史也充分的说明了这一点,先进的制造工艺使CPU的性能和功能一直增强,而价格则一直下滑,也使得电脑从以前大多数人可望而不可及的奢侈品变成了现在所有人的日常消费品和生活必需品。
总体来说,更先进的制成工艺需要更久的研制时间和更高的研制技术,但是更先进的制成工艺可以更好的提高中央处理器的性能和节省处理器的生产成本,以便降低售价。
补充:Intel的工程师目前正在设计的22nm工艺的CPU ,即使这听起来就像是非常遥远的未来,但我们完全可以在2011年见到首款22nm的处理器,当然这是建立在Intel能够在此之前把所有研发过程中出现问题都解决掉。在2009 Intel将推出命名为Westmere的32nm处理器,它被看作是Nehalem的衍生物,即便如此,在2010年Intel仍然计划推出一款新的32nm架构的代号为Sandy Bridge的32nm处理器。 在2011年,32nm Sandy Bridge将被22nm的Ivy Bridge替代,但产品名字目前还没有最终证实,在2012年,Intel应该有一个全新的22nm架构处理器,我们已经证实,Intel的工程师已经着手研发22nm芯片,可以想像,它们应该载有更多的缓存,更多的内核,并应最终速度超过任何我们今天的处理器。
超线程(Hyper-Threading,简称“HT”超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程 *** 作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
双核就是2个核心
核心(Die)又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有科学的布局。
从双核技术本身来看,到底什么是双内核?毫无疑问双内核应该具备两个物理上的运算内核,而这两个内核的设计应用方式却大有文章可作。据现有的资料显示,AMD Opteron 处理器从一开始设计时就考虑到了添加第二个内核,两个CPU内核使用相同的系统请求接口SRI、HyperTransport技术和内存控制器,兼容90纳米单内核处理器所使用的940引脚接口。而英特尔的双核心却仅仅是使用两个完整的CPU封装在一起,连接到同一个前端总线上。可以说,AMD的解决方案是真正的“双核”,而英特尔的解决方案则是“双芯”。可以设想,这样的两个核心必然会产生总线争抢,影响性能。不仅如此,还对于未来更多核心的集成埋下了隐患,因为会加剧处理器争用前端总线带宽,成为提升系统性能的瓶颈,而这是由架构决定的。因此可以说,AMD的技术架构为实现双核和多核奠定了坚实的基础。AMD直连架构(也就是通过超传输技术让CPU内核直接跟外部I/O相连,不通过前端总线)和集成内存控制器技术,使得每个内核都自己的高速缓存可资遣用,都有自己的专用车道直通I/O,没有资源争抢的问题,实现双核和多核更容易。而Intel是多个核心共享二级缓存、共同使用前端总线的,当内核增多,核心的处理能力增强时,就像现在北京郊区开发的大型社区一样,多个社区利用同一条城市快速路,肯定要遇到堵车的问题。
HT技术是超线程技术,是造就了PENTIUM 4的一个辉煌时代的武器,尽管它被评为失败的技术,但是却对P4起一定推广作用,双核心处理器是全新推出的处理器类别;HT技术是在处理器实现2个逻辑处理器,是充分利用处理器资源,双核心处理器是集成2个物理核心,是实际意义上的双核心处理器。其实引用《现代计算机》杂志所比喻的HT技术好比是一个能用双手同时炒菜的厨师,并且一次一次把一碟菜放到桌面;而双核心处理器好比2个厨师炒两个菜,并同时把两个菜送到桌面。很显然双核心处理器性能要更优越。按照技术角度PENTIUM D 8XX系列不是实际意义上的双核心处理器,只是两个处理器集成,但是PENTIUM D 9XX就是实际意义上双核心处理器,而K8从一开始就是实际意义上双核心处理器。
双核处理器(Dual Core Processor):
双核处理器是指在一个处理器上集成两个运算核心,从而提高计算能力。“双核”的概念最早是由IBM、HP、Sun等支持RISC架构的高端服务器厂商提出的,不过由于RISC架构的服务器价格高、应用面窄,没有引起广泛的注意。
最近逐渐热起来的“双核”概念,主要是指基于X86开放架构的双核技术。在这方面,起领导地位的厂商主要有AMD和Intel两家。其中,两家的思路又有不同。AMD从一开始设计时就考虑到了对多核心的支持。所有组件都直接连接到CPU,消除系统架构方面的挑战和瓶颈。两个处理器核心直接连接到同一个内核上,核心之间以芯片速度通信,进一步降低了处理器之间的延迟。而Intel采用多个核心共享前端总线的方式。专家认为,AMD的架构对于更容易实现双核以至多核,Intel的架构会遇到多个内核争用总线资源的瓶颈问题。
双核与双芯(Dual Core Vs. Dual CPU):
AMD和Intel的双核技术在物理结构上也有很大不同之处。AMD将两个内核做在一个Die(晶元)上,通过直连架构连接起来,集成度更高。Intel则是将放在不同Die(晶元)上的两个内核封装在一起,因此有人将Intel的方案称为“双芯”,认为AMD的方案才是真正的“双核”。从用户端的角度来看,AMD的方案能够使双核CPU的管脚、功耗等指标跟单核CPU保持一致,从单核升级到双核,不需要更换电源、芯片组、散热系统和主板,只需要刷新BIOS软件即可,这对于主板厂商、计算机厂商和最终用户的投资保护是非常有利的。客户可以利用其现有的90纳米基础设施,通过BIOS更改移植到基于双核心的系统。
计算机厂商可以轻松地提供同一硬件的单核心与双核心版本,使那些既想提高性能又想保持IT环境稳定性的客户能够在不中断业务的情况下升级到双核心。在一个机架密度较高的环境中,通过在保持电源与基础设施投资不变的情况下移植到双核心,客户的系统性能将得到巨大的提升。在同样的系统占地空间上,通过使用双核心处理器,客户将获得更高水平的计算能力和性能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)