多核与多线程技术的区别到底在哪里?_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、多核与多线程技术的区别到底在哪里?毫无疑问的,“多核”、“多线程”此二词已快成为当今处理器架构设计中的两大显学,犹如历史战国时代以“儒”、“墨”两大派的显学,只不过当年两大治世思想学派是争得你死我亡,而多核、多线程则是互相兼容并蓄,今天几乎任何处理器都朝同时具有多核多线程的路途进展迈进。虽然两词处处可见,但可有人知此二者的实际差异?在执行设计时又是以何者为重?到底是该多核优先还是多线程提前?关于此似乎大家都想进一步了解,本文以下试图对此举行个中差异的解说,并尽可能在不涉及实际复杂详情的情形下,让各位对两者的机制观念与差别性有所理解。行程早于线程若依据信息技术的进展历程,在软件程序执行时的再细分

2、、再切割的小型化单位上,先是有行程(process),之后才有线程(thread),线程的单位比行程更小,一个行程内可以有多个线程,在一个行程下的各线程,都是分享同一个行程所建立的内存寻址资源及内存管理机制,包括执行权阶、内存空间、堆栈位置等,除此之外各个线程自身仅拥有少许由于执行之需的变量自属性,其余都依据与遵行行程所设立的规定。相对的,程序与程序之间所用的就是不同的内存设定,包括分页、分段等起始地址的不同,执行权阶的不同,堆栈深度的不同等,一颗处理器若执行了a行程后要改去执行b行程,对此必需举行内存管理组态的搬迁、变更,而这个搬迁若是在处理器内还好,若是在高速缓存甚至是系统主存储器时,此种

3、切换、转移程序对执行效能的损伤就十分大,由于完成搬迁、切换程序的相同时光,处理器早就可以执行数十到上千个命令。两种路途的加速思维所以,想避开此种切换的效率损耗,可以从两种角度去思量,第一种思量就是扩大到整体运算系统的层面来解决,在一部计算机内设计、配置更多颗的处理器,然后由同一个操作系统同时掌控及管理多颗处理器,并将要执行的程序的各个程序,一个程序喂(也称:发派)给一颗处理器去执行,如此多颗同时执行,每颗处理器执行一个程序,如此就可以加快整体的执行效率。固然!这种加速方式必需有一个先决条件,即是操作系统在编译时就必需能管控、发挥及运用多行程技术,倘若以单行程的系统组态来编译,那么操作系统就无法

4、管控服务器内一颗以上的处理器,如此就不用去议论由操作系统负责让应用程序的程序举行同时的多颗同时性的执行派送。即便操作系统支持多程序,而应用程序若依然只支持单程序,那情形一样是白搭,操作系统无法对单行程程序再行拆分,依旧是只喂入单一颗处理器上去执行,无从加速。同时用多颗处理器来执行,且每颗处理器执行一个行程,这是一种加速法,另一种加速法则是:尽量不举行内存管理组态的切换,避开切换的效能折损,线程正是在此概念下所浮现的产物。不过,线程也要程序的搭配才干发挥,线程的概念浮现与落实已是“c+看消、java看长”的阶段,所以c+只能通过api呼用的方式来支持与用法多线程,如此必需改写过往的程序才行,改写

5、成有呼用到支持多线程的api才行。相对的,较c+晚问世的java则是原生支持多线程,不用改写也能发挥及运用多线程的特性及其加速效益。有了线程后,执行的分割、切割越发细腻,线程机制不仅在多颗处理器的系统内可以加速,在单颗处理器内也一样能获得益处,在多颗处理器的系统上每颗处理器不仅可以单独执行一个程序,固然也可以单独执行一个线程,而在单处理器系统上由于省去内存管理组态的搬迁,所以一样可以加速,很显然的,线程使执行的发派、分配越发细腻与灵便化。线程的副作用线程虽有好用的优点,不过它也有副作用的缺点,且此一优缺是一体两面无从分割,缺点是各个线程分享同一组内存管理组态及机制,倘若有一个线程的执行发生错误

6、、瑕疵、或遭入侵等,其余在同一个行程内的每个线程也都会遭遇影响、波及,最严峻是同一个行程内的一切都错乱、毁坏,由此可知:线程其实是带有若干平安性牺牲的加速法。此外有人会误解,就字面上而言,多核表示同时光有多颗处理器在执行,每颗处理器可以执行一个行程或一个线程,但是一颗具有多线程能力的处理器并不表示它可以同时执行多个线程,实际上在同一时光内一颗具多线程功效的处理器也依旧是执行一个线程而已,只是多线程处理器的内部可以将原有线程的相关信息及变量临时搁摆,然后去执行其它的线程,执行完后在切换回本来执行到一半的线程,甚至没执行完也可以切换回归,且囫囵切换过程都在处理器内举行,不用与快取与内存举行搬迁置换

7、,如此以迅速换线程执行的方式来加速。相对于此的,一颗不具多线程能力的处理器,执行一个线程到一半若想改执行另一个线程,就必需将原线程、现线程的相关内容与信息搬迁到快取或内存,然后自快取及内存引入另一个线程,因为此一搬转颇耗时,所以多半挑选将原有的线程执行完再引入下一个线程,如此在时光上可能还比较经济。然而无论一线程完整执行后再执行下一个线程,还是举行线程的进出搬迁转移,都不会比具备多线程能力的处理器来的迅速有效。至此我们可以归纳收拾:1.多核、多处理器系统中的每颗处理器(每个核),同时光内可以执行各自不同的行程(或线程)。2.一颗多线程能力的处理器,无论是支持二线程、四线程、八线程,这些线程都必

8、需是在同一个行程内,所以一颗处理器(一个核)还是只能执行一个行程,双核处理器就能够同时执行两个不同的行程(或线程),四核就可以同时不同的四个行程(或线程)。3.倘若是执行不支持多线程的程序,其执行上的分拆最多只到行程而未到线程,那么每颗处理器内的多线程功效就无从发挥,而这类的程序历史较长期,相对的原生支持多线程的程序历史较短,不过信息技术的脚步一直发展迅速,两种不同层次的支持仅差距数年时光。产业实际进展可为证实真的是多核优于、先于多线程吗?关于此可通过产业实际进展做为应证,sun的ultrasparc t1处理器(研发代号:niagara)是八核四线程的设计,但接续的ultrasparc t2

9、处理器(研发代号:niagara 2)则是八核八线程的设计,所以是核多、核优先,然后再来拉跋、提升线程的执行。同样的,ibm为microsoft xbox 360所设计的xenon处理器,是个三核二线程的设计,核数依旧是高于线程数,又如ibm、sony、toshiba三家业者合研的cell处理器,现有第一代的cell(研发代号:dd1)是九核,组态上是八核媒体(spe)、一核泛用(ppe),新一代的cell(研发代号:dd2)也针对ppe的部分举行双线程进展,如此再次表示核比线程重要,当cell仅举行增一线程的扩展改进时,而非再增一核,即可知这仅是一次小幅的改进。“多核”、“多线程”之外 还有“多令”、“多机”最后,且让我们谈谈与多核、多线程不同加速走向的“多令”,“多令”是笔者发明的词,指的是比执行行程(process)、线程(thread)更基底层次的执行命令(instruction),多核的作法是尽可能在同时光内执行多个行程,多令则是尽可能在同时光内执行多个命令,学术上的vliw与产业上的e皆是多令理念下的架构。到目前为止

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论