第28卷第12期计算机应用与软件Vol. 28 2011年12月Computer Applications and Software Dec. 2011 比较分析CPU超线程技术与双核技术的异同林杰余建坤/ (云南财经大学信息学院云南昆明650221) 摘要超线程技术和双核技术是CPU发展历程中的重要技术。超线程技术把一个物理处理器模拟成两个"虚拟"的处理器,减少执行单元和一些资源的闲置时间,提高CPU的利用率。双核技术是将两个物理处理核心封装在一个CPU中,提高程序的执行效率。介绍CPU的基本模型,分析超线程和双核的技术原理,并从系统架构、并行程度和提升的效率三个方面比较它们的异同点。关键词中央处理器超线程双核中圄分类号T凹68文献标识码A COMPARll叫GAND ANALYZING THE SIMILARITIES AND DIFFERENCES BETWEEN CPU HYPER-THREADING AND DUAL-CORE TECHNOLOGIES Lin Jie Yu Jiankun (ScMol 01 lnformation, Yunnan University 01 Fina时eαrulEconomi口,Kunming650221 ,Yunnan, China) Abstract Hyper-threading and dual-core are two important technologies during the CPU evolution. Hyper-threading technology simulates a physical processor as two "vi此ual"processors to reduce the idle time of the execution units and some resources, thus increasing CPU utiliza›tion. Dual-core technology encapsulates two physical processing cores into one CPU to improve the performance of programs. The paper de›scribes the basic model of CPU, analyzes Hyper-threading and dual-core technology principles, and compares their similarities and differences from three perspectives of system architecture, parallel degree and improved efficiency. Keywords CPU Hyper-threading Dual-core .健皿四稽+.11筒180S士-同o 51 CPU是计算机的控制中心,对整个计算机系统的运行起着极其重要的作用。通常提高CPU性能的方法是提高CPU的时钟频率和增加缓存容量。不过目前CPU的频率越来越快,如果再通过提升CPU频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约[2]。随着计算机的不断发展,为了满足不同的需求,CPU融入了许多新技术,比如超流水、分支预测、超标量、乱序执行及缓存等,以提高其性能。图1CPU模型到了上个世纪末期,HP和IBM公司成功开发出了拥有双内核控制器由程序计数器、指令寄存器、指令译码器、时序产生的HPPA8800和IBMPower4处理器,处理器由单核发展到了双器和操作控制器组成,负责协调和指挥整个计算机系统。运算核。2∞2年,英特尔公司推出了超线程技术,通过共享处理器器由算术逻辑单元(ALU)、通用寄存器、数据缓冲寄存器DR和的资源,提高CPU的利用率。超线程技术和双核技术无疑都是状态字寄存器PSW组成,负责对数据进行加工处理。控制器通为了提高CPU的性能,但是这两种技术存在差别,本文将对超过发出控制信号对运算器的操作进行控制。线程和双核技术的原理进行分析,并比较它们的异同点。程序是由指令和数据组成,它们先分别被装入数据cache和指令cacheCPU从cache里不断地取出一条指令,对指令进o1 技术原理行译码,然后执行指令,具体过程请参考文献[9]。在没有中断的情况下,一段程序直到完成了它想要完成的功能后CPU才会超线程技术和双核技术是在原来CPU的基础上发展而来执行下一段程序。以上所述是在单核CPU上运行程序的情况,的,在阐述超线程技术和双核技术之前,有必要对基本CPU的内部结构进行简单地分析。CPU主要由运算器、cache和控制器收稿日期:2010-12 -02。林杰,硕士生,主研领域:商务智能,数据三大部分组成,图1给出了CPU的模型。挖掘。.
294 计算机应用与软件2011年而且没有中断发生,类似于批处理。但是,以这种方式执行程一起;另一种方法是"Multi-coreSingle Die"封装方式,在晶困切序,不仅CPU的利用率低,而且没有并行性。割的时候,依据两个或多个核心为单位来切割内核,彼此互连的线路也包含在晶粒里头。 超钱程技术双核架构和超线程技术不同,它拥有两个核心,每个核心有早期的操作系统是基于进程的,一个进程中只包含一条执自己独立的执行单元和缓存,因此在每个时钟周期内所能执行行流。进程是处理器调度的基本单位,也是一个可拥有资源的的指令数比单核增加一倍,可以实现两个线程并行处理,在同等独立单位。当一个进程切换到另一个进程时,整个上下文需要级别中双核处理器的工作效率就要远远高于单核处理器。但是变化,系统开销较大。由于一些执行流之间具有内在的逻辑关在单个物理内核中线程在本质上还是串行处理的。要想通过双系,涉及相同的代码或数据,操作系统的学者们想将这些执行流核技术来提高处理器性能,同样也需要特定的软件支持。如果放在同一个进程的框架下,那么这些执行流之间的切换就不涉软件是单线程的,那么其中一个内核也就使用不到,其效率相当及地址空间的变化,由此产生了线程的概念。一个进程可以包于单核处理器。含多个线程,进程是资源的分配单位,线程是CPU的调度单位。原先的处理器在设计结构上每次只能处理一个线程,但是2 超线程技术和双核技术的比较通常我们的计算机需要同步执行多个程序,而且各线程之间切换的开销太多,有些执行单元没有被充分使用,处理器的应用效介绍完超线程技术和双核技术后,现在对它们的异同点进率大大降低。英特尔公司率先推出了超线程技术解决该问题。行比较。图2比较了超线程和双核的内部结构。左图显示的是超线程是一种类似于多处理器并行工作的技术,在一个处在一个芯片内集成两个线程的超线程处理器结构,右图显示的理器里面多加了一个架构指挥中心(AS),其实AS就是一些通是在一个芯片内集成两个独立处理器的双核处理器结构。用寄存器和程序计数器,两个AS共用一套执行单元、缓存等其从第1节中的技术原理中分析得出,超线程技术和双核技他结构,参见图2所示。它利用特殊的硬件指令,把一个物理处术有以下不同点:理器模拟成两个"虚拟"的处理器,即逻辑处理器,减少执行单(1)系统架构设计不同超线程技术在一颗处理器芯片内元和一些资源的闲置时间,提高CPU的利用率,而且操作系统设计多个逻辑处理器,它们共享处理器内的整数运算单元、浮点会认为自己运行在多处理器状态下。运算单元和二级cache等资源。当出现资源占用冲突时,其中一个钱程必须等其他的线程使用完资源后才能占有,或者优先级高的线程抢占优先级低的线程,即资源不能同时被两个线程回回\\@J回所占有。而双核处理器有独立的整数运算单元、浮点运算单元时11和二级cache等资源,两个线程可以并行的运行,互不干扰。11 ~ê 11 ~ê 1 (2)并行的程度不同超线程技术使多个线程在某个时间段内共同运行,也就需要有调度算法来分配资源给各个线程,在工JIIBB某个时间点上只有→个线程在运行,实质上是线程级上的并发。而双核技术可以让两个线程在某个时间点上同时运行,是真正~~ 11100 在线程上的并行。(3)提升的效率不同超线程的资源具有抢占性,双核处图2超线程与双核比较理器的资源有独占性。超线程技术所带来的性能提升不能等同在处理多个线程的过程中,超线程处理器可以同时运行两于两个相同钟频率的处理器。如果一个程序是单线程设计的,个钱程。在没有资源冲突的情况下,两个线程分别使用闲置的那么双核处理器并没有什么优势,还是有资源会被闲置。但是执行单元。如果出现资源冲突,则必须等其中一个执行单元使在多线程程序下,双核处理器的执行效率会占得上峰。用完后,另一个线程才继续执行。可见,超线程技术可以使线程然而,这两种技术也有共同的地方。从软件透明性角度看,部分并行,并不能完全并行。但是这已经大大提高了处理器内双核与超线程都可以被视为双处理器系统,都可以同时执行两部处理单元的利用率和相应的数据、指令的吞吐能力。个线程。它们的最终目的都是为了提高CPU的性能和程序执计算机系统要实现超线程技术,需具备以下条件:含有超线行效率。如果程序不支持多线程的话,超线程处理器内部的资程技术的处理器、支持超线程技术的芯片组、基本输入输出系统源得不到充分的利用,双核处理器其中一个内核会被闲置。(BIOS)和操作系统。双核技术和超线程技术可以同时应用在一个处理器上,它 双核技术原理们并不冲突,即双核处理器融入超线程技术。这时一个处理器相当于有四个核心,性能上肯定有所提升,但是不会比四核心的双核或多核处理器是指在同一个实体处理器的封装里面包含两个或多个执行核心。这些执行核心各自拥有独立的执行单处理器效能来得好,通过以上分析就可知。元和高速缓存,可以完全独立地处理自己的数据,而且不会共享彼此的通道,可以真正获得指令阶段的平行处理,是物理上的双3结语处理器系统。超线程技术和双核技术都是为了提高CPU的性能而产生把两个核心或多个核心封装在一个处理器里,主要有两种实现的方式。最简单的一种是"Multi-chip"封装方式,就是把两的技术,各有各的优势,它们的最佳性能需要在特定的环境下才能展现出来,比如软件的支持。CPU的设计己从原来的提升时个或多个原本的单处理器内核(Die)原封不动地封装在一起,(下转第297页)再利用外部线路来互相连接,基本上是两个或多个内核并排在
第12期陈文平等:VB窗体对控件、对象的限量问题与对策297 明确的设计,所要创建的控件的某些属性设置在设计阶段比较容易确定,而运行中它们是隐含的不易确定。因此,用动态创建和删除的方法来克服控件数量限制对本文提到的问题不可取。图4创建控件组提示6结语创建的控件组名将以一个索引序列排列,设计时对应编写相应过程就能够达到与独立控件功能相同。对于一些特定的设计对象,如笔者所设计的程序。既要操为了便于控件组的管理、使用,可以将部分功能相近的控件作方便、过程不间断,又要保持系统整体性、同一个界面能够统组创建在一个框架Frame控件内。目的有两个:一是使用、管理览全过程,势必会遇到需要使用过多的控件对象来满足设计的方便。在程序编写中需要经常调试某个过程,通过框架的使用需求。便于大程序的定位;二是能够大量重复使用该性质的控件而不设计过程中向VB窗体添加控件总量受到限制,是一个不占用资源,达到节省控件、总量受限的目的。可忽视的问题。它确定存在,如果处理不妥将会给设计人员在需要说明,虽然尚不清楚原由,可以清楚的是通过在框架内设计中带来不必要的麻烦,可能会对设计导致前功尽弃的后果。建立的控件组比直接在窗体上用相同方法创建的控件组的量要特别是对初学者尤其要引起重视。多,且不受框架外控件总量的限制。具体数量尚待进一步研究。解决的方法也不只是文中提到的几种,还有许多其他的方还要另外指出,如命令按钮等一些控件在形成组件后它们的驱法解决。如,在程序前期合理规划、构建设计流程;采用多窗体动功能将有所改变,失去一些它们在单独使用中的一些功能。设计等等。就命令按钮("Command"控件)而言,如果复制成组后所给予它因此解决好此类问题,需要我们对VB这种设计语言以及的驱动过程作用都是相同的。即不论激发该组中的哪个按钮,可能遇到的问题作进一步深入地思考和探索。它的执行是同一个过程。这是因为在一组Command控件中,除参考文献了名称"Caption"属性不同外其它大多数属性都相同。这些控件使用成组时需要额外考虑它们的配置。[ 1 J龚沛曾,陆慰民,杨志强.Visual Basic程序设计简明教程[版.北京:高等教育出版社,2002.因此,在同一框架内创建控件数组的方法,是解决VB中控[2 J吴企渊,梁燕.计算机操作系统[版北京:清华大学出版件数量限制的最有效办法之一。因为在同一个框架内,不论控丰士,2003.件组中含有多少个控件(当然也不能突破254),在窗体Form中[ 3 J同志工作室.Visual Basic 开发技巧与实例教程[M].北京:人都将它们视作一个控件。民邮电出版社,2∞15.[4 J陈文平.弯曲内力图计算模型及程序的实现[J].科技创新导报,4 使用内部函数进行输入输出2∞7,33 :39 -40. [ 5 J东南大学机械学学科组,郑文纬,吴克坚.机械原理[版.北VB中有两个内部函数,即:InputBox ( )函数和MsgBox()画京:高等教育出版社,2∞4.数。这两个函数类似于可视化控件在程序运行中实现数据的输B句-、,、入和输出,它们既具有控件的相似功能作用,而又不会占用控件{上接第294页}数量资源。钟频率转向并行多任务处理。当前许多应用程序已有基于多线 InputBox()函数程进行开发,这将充分利用CPU的这些技术,使计算机表现出更优的性能。InputBox( )函数的功能是在程序运行中根据需要接收键盘的数据输入。用该函数替代由文本框来输入数据。参考文献 MsgBox()函数和MsgBox语旬[ 1 J赵海阔,锥向东.Intel处理器中超线程技术的应用[JJ.甘肃高师MsgBox( )函数和MsgBox语句是消息框,用于显示信息。学报,2∞6,11(5) :67 -69. MsgBox( )函数和MsgBox语句使用时功能基本相同,但略有区[ 2 J王卓勤.超线程技术[JJ.科技信息,2∞7,(32) :201 -202 别。利用它们可以在程序中用来取代其他控件显示某些计算数[ 3 J玉晗,林涛.超线程技术以及编码器中的并行运算分析据的结果。特别是程序运行中的中间结果。[JJ.计算机工程,2∞6,32(7):224 -226. 如果需要把输出数据确定或保存下来,我们使用MsgBox() [ 4 J曹庆云.关于超线程技术[JJ. r除州职业技术学院学报,2∞6,5(1):68-71. 函数;如果仅需某阶段d性的数据提示,使用MsgBox语句即可。[ 5 J张云.解析超线程技术[J].甘肃联合大学学报:自然科学版,2007,21 (4) :99 -101. 5 动态创建和删除控件方法[ 6 J李闯.浅谈计算机操作系统中线程与超线程技术及应用[JJ.黑龙江交通科技,2∞5(5):75 -76 VB中利用它的类继承也可以在程序的运行中创建控件,同[ 7 J丁煌.双核技术问答[JJ.科技浪潮,2∞6(1). 时在运行中删除控件。那么,利用这种方法同样可以达到当控[ 8 J姑苏飘雪.异曲同工?解析双核心架构及超线程技术[J].电脑件不足或受限时删除某些已经存在的控件,并与此同时建立新迷,2∞5( 13) :23 -24. 的需要的控件。这方面一些资料中有介绍。[9 J白中英.计算机组成原理[版北京:科学出版社,2007.不过,这种方法在一般设计中操作起来显得繁琐,需要大量[10J左万历,周长林.计算机操作系统教程[版.北京:高等教育编写语句来实现,但仅限于建立组件等。再一是对于目标比较出版社,2∞4.