精华内容
下载资源
问答
  • linux 超线程及其原理,以及如何查看是否开启了超线程
    千次阅读
    2020-06-01 10:50:30

    1. 超线程

            超线程是英特尔开发出来的一项技术,使得单个处理器可以象两个逻辑处理器那样运行,这样单个处理器以并行执行线程。
    这里的单个处理器也可以理解为CPU的一个核心;这样便可以理解为什么开启了超线程技术后,逻辑CPU的数目是核心数的两倍了。

    2. 超线程技术实现并行操作的原理

            一个线程在执行时会占用CPU资源,其他线程想要得到执行就必须等待该线程将CPU资源让出。

            利用超线程技术,模拟出的两个逻辑内核共享同一个CPU资源,所以同一时刻可以有两个线程都占用CPU资源,因此这两个线程都可以得到执行,这就是实现同一时间执行两个线程的并行操作。

            比如说:

            有个单核的CPU,想要运行一个多线程的程序,通常情况下,只能是由Cpu在线程之间来回调度,但是当开启了超线程之后,可以在一个线程执行整数指令集的时候,而恰好在这个时候,另一个线程执行浮点指令集,而这两个指令集分别由整数指令单元和浮点指令单元来执行。就可以同时执行这两个线程,这就叫超线程。而且实际上,是有大量资源被闲置着的。超线程技术允许两个线程同时不冲突地使用CPU中的资源。指令单元闲置,可以通过超线程的技术来达到提高利用率。这叫做硬件多线程技术。


     3. 如何查看是否开启了超线程

         通过查看物理CPU数,每个CPU的逻辑核数,CPU线程数可以得知是否开启了超线程。

    • 物理CPU数
      • 物理CPU就是插在主机上的真实的CPU硬件,在Linux下可以数不同的physical id 来确认主机的物理CPU个数。
      • 可以看到 当前机器拥有2颗物理CPU 
    [root@localhost daxiang]# cat /proc/cpuinfo | grep "physical id" | sort | uniq
    physical id     : 0
    physical id     : 1
    • 单个CPU的逻辑核心数量
      • 我们常常会听说多核处理器,其中的核指的就是核心数。在Linux下可以通过cores来确认主机的物理CPU的核心数。
      • 可以看到每颗CPU拥有6个逻辑核心
    [root@localhost daxiang]# cat /proc/cpuinfo | grep "cores" | uniq
    cpu cores       : 6 
    • 系统CPU线程数
      • 逻辑CPU跟超线程技术有联系,假如物理CPU不支持超线程的,那么逻辑CPU的数量等于核心数的数量;
      • 如果物理CPU支持超线程,那么逻辑CPU的数目是核心数数目的两倍。
      • 在Linux下可以通过 processors 的数目来确认逻辑CPU的数量。当前机器拥有24个CPU线程
    [root@localhost daxiang]# cat /proc/cpuinfo | grep "processor" | wc -l
    24

    综上所述:这台机器拥有2颗物理CPU,每个CPU有6个逻辑核心,系统一共拥有24个CPU线程。显然开启了多线程

    更多相关内容
  • 计算机超线程原理

    2020-11-21 13:29:00
    一个ALU 对应多个Registers和PC,PC存当前指令地址,Registers存数据,一个CPU核内,同时跑多组线程,不需要上线文切换 上下文切换需要把当前执行线程的上下文(指令和...所谓的四核八线程 ,就是这样的一种原理 ...

     

    一个ALU 对应多个Registers和PC,PC存当前指令地址,Registers存数据,一个CPU核内,同时跑多组线程,不需要上下文切换

    上下文切换需要把当前执行线程的上下文(指令和数据)暂存,载入另一个线程,切换的成本会比较大

    所谓的四核八线程 ,就是这样的一种原理

    展开全文
  • 原理是根据/sys/devices/system/cpu/cpuX/topology/thread_siblings_list文件找到逻辑核的关系,然后编辑/sys/devices/system/cpu/cpuX/online文件实现动态开启和关闭超线程技术。 #!/bin/bash HYPE
  • 所谓超线程,就是我们平时说的CPU双核四线程这种线程数多余核心数的情况,比如大部分的i5和i7都是支持超线程的。很多人,尤其是一些伪大神认为超线程的两个线程实际上还是一个...

            所谓超线程,就是我们平时说的CPU双核四线程这种线程数多余核心数的情况,比如大部分的i5和i7都是支持超线程的。很多人,尤其是一些伪大神认为超线程的两个线程实际上还是一个核心,运行效率低下,不值一提。其实,超线程技术对CPU而言还是有很大性能提升的,因为超线程技术不仅仅是逻辑技术,还是一个硬件技术。

            我们先看CPU是如何处理指令的。通俗的说可以分成两部分,第一部分是负责读取指令,第二部分是负责执行指令。一般执行部分是非常复杂的,通俗的来讲,比如加减乘除等需要不同的执行机构,一套执行机构要包括多种运算法则的执行单元。通常的CPU是读取部分和执行部分一对一的,而超线程的CPU则是多个读取部分和一个执行机构对应的,也就是说一个核心里有好几套的读取机构和一套执行机构。

            超线程的优势:首先读取机构1和读取机构2分别读取不同的指令,假设指令1是乘法,指令2是加法,那么CPU就可以调用一套执行机构中的不同部分来同时处理;而对于不支持超线程的CPU,执行指令1时尽管加法执行单元是空闲的但是也只能等指令1执行完成之后且指令2读取完毕后才能执行。在这种情况下多线程效率接近多核。

            另一种情况:如果指令1和指令2都是加法,那么指令2就必须等待指令1执行完成,这时的超线程和单核是一样的。此外,如果指令2的执行需要指令1的结果,那么指令2也是必须等待指令1的。

            那么,多线程技术的效果实际上取决于对指令的排列顺序。在通常的CPU上这是取决于当前执行的程序,而为了提升CPU的性能以intel为首的CPU巨头使用了一个叫做指令预测和乱序的技术。通过数学逻辑上的优化可以相当程度的重排CPU指令顺序这样就能有效的避免指令2等待指令1的悲剧,性能也就提升了不少。

            所以,超线程技术其实可以利皆为介于多核和单核的过度,是软件和硬件优化的结合,很难说性能是单核心的多少倍,在合适的条件和性能可以接近多核心,在另外的情况下又可能几乎没有作用,而成本却比多核心要低的多,也能有效的减少多核引起的功耗增加

    展开全文
  • 下面我们一起来看一看超线程工作原理,实现所需条件,和它是怎么影响虚拟服务器的。超线程工作原理传统的处理器队列指令在传输到处理器的执行引擎之前会通过流水线架构。应用设计以及需求差异总...

    ZDNet至顶网服务器频道 09月11日 : 提升处理器性能的方法有很多种,包括更快的频率、更大的数据路径以及不同的指令集方式。超线程也是其中一种,不过并不适用于所有场景,而且现代处理器设计可能会令超线程成为明日黄花。下面我们一起来看一看超线程的工作原理,实现所需条件,和它是怎么影响虚拟服务器的。

    超线程工作原理

    传统的处理器队列指令在传输到处理器的执行引擎之前会通过流水线架构。应用设计以及需求差异总是会在处理器的指令管道中留有空隙,导致存在空闲的处理器时钟周期。糟糕的程序设计可能会浪费时钟周期并降低处理器性能。

    为了优化处理器架构并提升多任务处理的可能性,处理器设计人员增加了与一级管道共享执行引擎的二级管道。设计人员想让第二个线程或者任务的相关指令在单个 管道中排队,当第一个指令管道空闲时再通过执行核心运行这些指令。Intel开发了超线程技术,增强了计算机系统上的多线程并行处理。

    在处理器核心中包括第二级指令管道,操作系统会识别到两个独立的处理器。能够将活动分解为单独任务的应用程序能够利用处理器超线程技术。单独的指令序列帮助处理器调度工作负载以有效地使用其指令引擎,这反过来提升了核心的计算能力。

    然而,处理器核心仍旧只有一个执行引擎,因此超线程带来的性能提升取决于正在被调度的工作负载的设计与实现方式。性能改善从不会超过通过增加第二个核心所带来的提升,增加第二个核心通常会使处理器的计算资源成倍增加。

    在实现超线程之前需要具备哪些条件

    处理器、BIOS、操作系统以及工作负载构成了超线程服务器应具备的四大基本元素。当代大多数操作系统能够支持超线程: 2002年Intel在至强处理器中就引入了目前已经很完善的超线程技术,现在Itanium以及Atom处理器也支持超线程。

    然而,处理器需要特定的软硬件元素,包括服务器主板对BIOS提供支持。超线程的成熟特性几乎保证了对BIOS的合理支持,通过设置BIOS允许系统技术人员启用超线程及相关的活动。

    由于OS在指令队列中解析工作负载任务并处理任务调度,因此操作系统也必须支持超线程。目前,大多数企业级操作系统,包括Windows Server 2012以及SuSE和Red Hat Linux的某些新的发行版都支持HT和SMT。检查操作系统文档以确认HT支持所有数据中心平台。

    最后,应用设计本身也影响超线程。设计为能够借助超线程优势的SMT应用要比只是部署在启用超线程服务器的应用性能更好。因为处理器版本、BIOS版本、OS版本以及应用设计都影响超线程,因此很难准确判断对性能有多大提升。

    超线程如何影响虚拟服务器

    超线程通常提升了单核处理器的性能,但不幸的是,处理器性能提升并不等于更不可能超越多核的性能优势。你无法基于核心或者插槽来选择启用或者禁用超线程,而且在某些情况下,超线程有可能会对处理器虚拟化带来不良影响。因此,很多管理员选择禁用超线程。

    超线程技术增强了处理器组织及调度应用任务的方式,提升了性能。然而现代企业服务器至少使用有8到10个核心的多核处理器。在大多数情况下和超线程相比,可用的计算资源能够带来更好的性能提升。超线程还可能会对处理器虚拟化的方式带来不良印象。

    例如,当启用超线程时虚拟化特性比如CPU关联性并非总是能够很好地运行。超线程在每个核心上创建了两个逻辑处理器,但是这些逻辑处理器仍旧共享物理核心 的计算资源。因此,当虚拟机或者单个SMP虚拟机试图使用位于同一个物理核心上的vCPU时可能会发生资源争用,出现性能瓶颈。

    实际上,服务器上可用的核心数量可能会导致超线程浪费计算资源。如果一台服务器包括4颗10核处理器,那么一共有40个核心,运行在Windows Server 2008 R2的Hyper-V服务器支持64个逻辑处理器。如果启用超线程,服务器将提供80个逻辑处理器,这样就有16颗逻辑处理器处于空闲状态,而且几乎浪费了整个处理器插槽。在这种情况下超线程带来的性能提升不会超过物理核心所增加的计算能力。

    展开全文
  • 等到该其他软件执行结束或是不再一直占用CPU资源后,就会自动调回CPU使用率,这样的工作原理正类似超线程技术。 实现方法 运行Process Tamer软件后,软件会以最小化的方式运行在任务栏托盘,当检测到CPU资源占用过...
  • 超线程技术

    千次阅读 2018-11-20 10:54:54
    超线程是Intel 所研发的一种技术,于2002年发布。超线程的英文是HT技术,全名为Hyper-Threading,中文又名超线程超线程技术原先只应用于Intel Xeon处理器中,当时称为Super-Threading。之后陆续应用在Pentium 4中...
  • 超线程和多线程的区别

    万次阅读 多人点赞 2019-08-08 20:39:20
    关于线程,多线程,并发,并行等操作系统的基础知识,可以回顾我之前的博客 操作系统学习之一常用术语 物理CPU: 物理CPU就是插在主机上的真实的CPU硬件,在Linux下可以数不同的physical id 来确认主机的物理CPU个...
  • CPU超线程技术

    千次阅读 2020-03-22 14:38:32
    超线程简单来说就是可以提供核心利用率的东西,将闲置的核心充分利用起来并进行合理的分配。增加核心的并行运算性能。在操作系统中,一颗物理CPU可以当作多个CPU使用,类似于软件共享一样。举个例子,我们以下面四核...
  • 虚拟机超线程性能分析深入浅出

    千次阅读 2017-03-11 16:57:29
    原文地址:http://www.51gocloud.com/?p=1919超线程的技术原理超线程技术在一个物理核上模拟两个逻辑核,两个逻辑核具有各自独立的寄存器(eax、ebx、ecx、msr等等)和APIC,但会共享使用物理核的执行资源,包括执行...
  • 多线程与超线程

    千次阅读 2018-01-17 21:18:05
    记得当初上学的时候,即使是那些对自己专业比较热爱的同学依然对计算机组成原理和体系结构这种课程提不起兴趣来。因为这两门课涉及到了硬件,而我们大部分人毕业...今天我要跟大家分享的是多线程和超线程的一些知识。 
  • 通过在单个物理处理器封装中实现多个逻辑处理器(即最早期的超线程技术),或者在物理处理器的核中实现多个逻辑处理器(即多核时代的超线程技术),Intel®超线程技术使得软件可以利用任务级别,或线程级别的并行性...
  • 当然是通过cat /proc/cpuinfo来检查了,但是比如几个物理CPU/几核/几线程,这些问题怎么确定呢? 以一个我的开发机器为例,是2个物理CPU,32核64线程,Intel:registered: Xeon:registered: Gold 6130 CPU @ 2.10GHz...
  • 超线程/SMT多线程技术有什么用?

    千次阅读 2020-03-22 17:17:58
    说到超线程技术,大家应该都不陌生了,Intel早在2002年推出的Northwood奔腾4 HT处理器就把这一技术带入到消费级市场,虽然随后的酷睿2处理器超线程被抛弃,不过到了2008年推出的Nehalem架构Core i7处理器又把超线程...
  • 超线程技术den应用

    2012-07-05 11:36:12
    本文章主要是介绍了超线程技术的应用,其中包括它的应用和原理
  • Linux动态启用/禁用超线程技术

    千次阅读 2019-07-07 11:37:00
    转载请注明文章出处:...intel的超线程技术能让一个物理核上并行执行两个线程,大多数情况下能提高硬件资源的利用率,增强系统性能。对于cpu密集型的数值程序,超线程技术可能会导致整体程...
  • 超线程简介

    千次阅读 2013-08-09 09:35:45
    超线程是英特尔所研发的一种技术,于2002年发布。超线程的英文是HT技术,全名为Hyper-Threading,中文又名超线程超线程技术原先只应用于Xeon处理器中,当时...工作原理 运行模式 运作方式 技术支持 使用前提
  • 包含详细介绍多线程编程的四个文档及可运行的代码: 1、多线程编程-API.doc 2、多线程编程-互斥锁.doc 3、多线程编程-信号量.doc 4、多线程编程-监控线程.doc 其中监控线程部分有较好的参考价值。
  • 了解身边的超线程、双核、双cpu

    千次阅读 2017-03-14 16:52:59
    一、从三者的工作原理和概念理解:    (1)超线程(HT):    超线程(Hyperthreading Technology)技术就是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理芯片,在单处理器中实现线程级的并行计算,...
  • 超标量、超流水、超线程

    千次阅读 2019-04-04 17:38:36
    一、流水线技术 流水线(Super Pieline)技术是RISC采用的一种并行处理技术。他通过细化流水,增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质就是以时间换取空间。流水机器的...
  • Java并发编程-线程池底层工作原理

    千次阅读 2021-01-29 19:36:57
    关于线程池的具体介绍,可以参看ThreadPool线程池,这里主要介绍线程池底层工作原理。 1.线程池的底层工作原理 1.1.线程池的底层工作原理图 线程池的主要处理原理图和流程图如下 1.2.银行办理业务案例 为了便于...
  • 迅雷使用的多资源超线程技术基于网格原理,能够将网络上存在的服务器和计算机资源进行有效的整合,构成独特的迅雷网络,通过迅雷网络各种数据文件能够以最快速度进行传递.多资源超线程技术还具有互联网下载负载均衡功能...
  • 什么是超线程技术  超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算.具体讲,就是通过CPU的寄存器构成了两个逻辑处理器,来共享处理器的物理执行...
  •  为了应对上面提到的问题,发明了超线程技术(HyperThreading), 超线程原理是在同一个cpu芯片内部有些内部组件会存在多份,比如 寄存器或者一级缓存,这样同一个cpu就可以用来执行多个线程或者进程,并且它们...
  • 详细 Servlet工作原理解析

    千次阅读 2016-08-05 16:26:07
    因而掌握 Servlet的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet工作,以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet ...
  • 了解MySQL(详细的MySQL工作原理 体系结构)

    千次阅读 多人点赞 2020-08-11 18:32:15
    了解MySQL(详细的MySQL工作原理 体系结构) MySQL体系结构 MySQL内存结构 MySQL文件结构 innodb体系结构 了解MySQL前你需要知道的 引擎是什么: MySQL中的数据用各种不同的技术存储在文件(或者内存)中。...
  • 超线程/多核技术

    千次阅读 2017-04-27 16:24:05
    预备知识 1、Intel自Pentium开始引入超标量、乱序运行...为了有效利用这些资源,就干脆再增加一些资源来运行第二个线程,让这些闲置资源可运行另一个线程,而且CPU只要增加少数资源就可以模拟成两个线程运作。 P4处理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,956
精华内容 23,982
关键字:

超线程的工作原理