详解超线程、多核、多处理器的区别
大家都知道超线程技术对多任务处理有优势,但是如果我们运行单线程运用软件时,超线程技术将会降低系统性能,对于不支持多处理器工作的软件在双处理器上运行时出错的概率要比单处理器上高很多一起来看看小编为大家推荐的超线程、多核、多处理器的区别的教程吧。
1、超线程技术
每个单位时间内,cpu只能处理一个线程(thread)。除非有两个核心处理单元,否则要想在单位时间内处理超过一个的线程是不可能的。
超线程ht(hyper-threading)技术是在单个核心处理单元中集成两个逻辑处理单元,也就是一个实体内核(共享的运算单元),两个逻辑内核(有各自独立的处理器状态),在一颗cpu同时执行多个程序而共同分享一颗cpu内的资源,理论上要像两颗cpu一样在同一时间执行两个线程,p4处理器需要多加入一个logical cpu pointer(逻辑处理单元)。因此新一代的p4 的面积比以往的p4增大了5%。而其余部分如alu(整数运算单元)、fpu(浮点运算单元)、l2 cache(二级缓存)则保持不变,这些部分是被分享的。
图1超线程技术处理进程
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的cpu那样,每各cpu都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗cpu的性能。
2、多处理器
多处理器(multiprocessor)系统由不同芯片上的多个处理器组成。多处理器系统因it服务器的应用在上世纪九十年代得以普及。在当时,它们是可以插入机架服务器的处理器主板。现在,多处理器系统可以构建在同一块电路板上,处理器之间通过一个高速通信接口连接。
图2 多处理器系统具有远程互联结构的独立高速缓存与mmu内存管理单元
多处理器系统的复杂度低于多核系统,因为它们本质是互连在一起的单芯片cpu。多处理器系统的不足在于其高昂的价格,因为它们需要多个芯片,这比单芯片解决方案要昂贵得多。
3、双核与多核处理器
双核处理器是指单个芯片上有两个cpu,而多核处理器则是指在单个芯片上包含任意多个(如2、4或8)cpu的处理器。多核处理器的挑战在于软件开发部分。系统性能提升的多少直接与通过多线程编程源代码的并行程度有关。
图3 多核处理器共享具有短程互联结构的高速缓存和mmu内存管理单元
4、总结
超线程由于处理器实际上只有一个核心,能够提升的效能约为5~15%左右,且万一发生资源互抢的情形时,整体效能反而会下降。双核共用cache,程序设计合理性能可能比双处理器性能更好,多处理器可能还需在两个cache间传输数据,多核和超线程的区别如图4。
图 4 超线程和多核区别
以上就是小编为大家讲解的关于超线程、多核、多处理器的区别点,需要的朋友快来看看吧,想了解更多精彩教程请继续关注网站!
下一篇: NXP:NFC技术已成物联网不可或缺部分
推荐阅读
-
C#中Property和Attribute的区别实例详解
-
php 去除html标记--strip_tags与htmlspecialchars的区别详解
-
详解HTML5中div和section以及article的区别
-
Android MotionEvent中getX()和getRawX()的区别实例详解
-
关于Sequelize连接查询时inlude中model和association的区别详解
-
详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始
-
Android 1.5 1.6 2.0 2.1 2.2 的区别详解
-
Android中dip、dp、sp、pt和px的区别详解
-
Python实例方法、类方法、静态方法的区别与作用详解
-
python中is与双等于号“==”的区别示例详解