1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
在这篇文章中, 我会主要介绍CPU相关的一些重要概念和技术。如果你想更好地了解操作系统,那就从本文开始吧。
中央处理器(Central processing unit) 在我们了解其它概念之前,我们应该首先了解一下什么是CPU,它是做什么的,它的主要组件以及相应的作用都是什么? 简单点说,CPU其实就是计算机内部的一个电子电路。根据一些具体的指令它可以执行基本的运算,逻辑,控制和IO操作等。CPU的主要组件包括:
下图表示的是CPU与主存和IO之间的交互。 上图来源:”Computer Systems - A Programmers Perspective” 一书 多个CPU 贯穿这个数字计算机的历史,我们一直以来的目标就是想要计算机可以做更多的事情,并且做的更快。因此在hyper-threading 和 multi-core CPUs出现之前,人们想到通过增加CPU的数量来增加计算机的计算机能力和速度,但是这样的方法并没有在个人PC中得到普及,我们只会在一些超级计算机或者一些服务器上会看到这个多个CPU的计算机。因为多个CPU会需要主板有多个CPU socket - 多个CPU***入到不同的socket中。同时主板也需要额外的硬件去连接这些CPU socket到RAM和一些其它的资源。如果CPU之间需要彼此通信,多个CPU的系统会有很大地开销。 Hyper-Threading 由于多个CPU上面存在的缺点,因此它并没有进入普通大众的电脑中,因此消费者电脑的计算始终没有达到并行的状态,电脑的速度也一直没有加快。直到多核处理器和Hyper-Threading技术的出现,才改变了这一点。Hyper-threading这个概念是Intel提出的,这家伟大的公司想把计算机并行计算的能力带入到个人PC中,它第一次进入大众PC的产品是2002年的Pentium 4 HT,最初的这款处理器仅有单个CPU核心,因此它一次只能做一件事情。但是Hyper-threading技术的出现弥补了这个不足。 Hyperthreading 有时叫做 simultaneous multi-threading,它可以使我们的单核CPU执行多个控制流程。这个技术会涉及到备份一些CPU硬件的一些信息,比如程序计数器和寄存器文件等,而对于比如执行浮点运算的单元它只有一个备份,可以被共享。一个传统的处理器在线程之间切换大约需要20000时钟周期,而一个具有Hyperthreading技术的处理器只需要1个时钟周期,因此这大大减小了线程之间切换的成本。hyperthreading技术的关键点就是:当我们在处理器中执行代码时,很多时候处理器并不会使用到全部的计算能力,部分计算能力会处于空闲状态,而hyperthreading技术会更大程度地“压榨”处理器。举个例子,如果一个线程必须要等到一些数据加载到缓存中以后才能继续执行,此时CPU可以切换到另一个线程去执行,而不用去处于空闲状态,等待当前线程的IO执行完毕。 Hyper-threading 使操作系统认为处理器的核心数是实际核心数的2倍,因此如果有4个核心的处理器,操作系统会认为处理器有8个核心。这项技术通常会对程序有一个性能的提升,通常提升的范围大约在15%-30%之间,对于一些程序来说它的性能甚至会小于20%, 其实性能是否提升这完全取决于具体的程序。比如,这2个逻辑核心都需要用到处理器的同一个组件,那么一个线程必须要等待。因此,Hyper-threading只是一种“欺骗”手段,对于一些程序来说,它可以更有效地利用CPU的计算能力,但是它的性能远没有真正有2个核心的处理器性能好,因此它不能替代真正有2个核心的处理器。但是同样都是2核的处理器,一个有hyper-threading技术而另一个没有,那么有这项技术的处理器在大部分情况下都要比没有的好。 图说超线程 在操作系统中,有多线程(multi-threading)的概念,这很好理解,因为线程是进程最小的调度单位,一个进程至少包含一个线程。本文将介绍CPU特有的超线程技术。简单来说就是,多线程比较软,超线程比较硬,二者本质上都是虚拟化。 1. 什么是超线程(hyper-threading)? 超线程(hyper-threading)其实就是同时多线程(simultaneous multi-theading),是一项允许一个CPU执行多个控制流的技术。它的原理很简单,就是把一颗CPU当成两颗来用,将一颗具有超线程功能的物理CPU变成两颗逻辑CPU,而逻辑CPU对操作系统来说,跟物理CPU并没有什么区别。因此,操作系统会把工作线程分派给这两颗(逻辑)CPU上去执行,让(多个或单个)应用程序的多个线程,能够同时在同一颗CPU上被执行。注意:两颗逻辑CPU共享单颗物理CPU的所有执行资源。因此,我们可以认为,超线程技术就是对CPU的虚拟化。 2. 超线程技术的由来(资料来源: https://en.wikipedia.org/wiki/Hyper-threading) Hyper-Threading Technology is a form of simultaneous multithreading technology introduced by Intel, while the concept behind the technology has been patented by Sun Microsystems. 超线程技术是同时多线程技术的一种实现形式,由Intel公司提出,而该技术背后的概念则是Sun公司的专利。Sun公司虽然倒下了,但它永远是一个伟大的公司。 纵观计算机的历史,有两个需求是驱动计算机科技进步的持续动力。
3. 单线程v.s.超线程 (图片来源:http://www.gethow.org/what-is-hyper-threading-technology-in-processors) 常规的CPU需要大约两万个时钟周期做不同线程间的切换,而超线程的CPU可以在单个时钟周期的基础上决定要执行哪一个线程。这使得CPU能够更好地利用它的处理资源。例如:假设一个线程必须等到某些数据被装入到cache中,那么CPU就可以继续去执行另一个线程。 Intel公司的超线程技术 HT allows single processor to fetch and execute two separate code streams simultaneously. 超线程允许单个处理器在同一时刻并行地抓取和执行两个独立的代码流。 4. 超线程是如何工作的 维基百科的解释如下: In this high-level depiction of HTT, instructions are fetched fromRAM (differently colored boxes represent the instructions of fourdifferent programs), decoded and reordered by the front end (whiteboxes represent pipeline bubbles), and passed to the execution corecapable of executing instructions from two different programs duringthe same clock cycle. 图片来源: https://en.wikipedia.org/wiki/Hyper-threading#/media/File:Hyper-threaded_CPU.png 5. 超线程技术的好处 6. 实现超线程技术的前提条件
小结: 超线程(hyper-threading)本质上就是CPU支持的同时多线程(simultaneous multi-threading)技术,简单理解就是对CPU的虚拟化,一颗物理CPU可以***作系统当做多颗CPU来使用。 多核CPU 相比于多个处理器而言,多核处理器把多个CPU(核心)集成到单个集成电路芯片(integrated circuit chip)中,因此主板的单个socket也可以适应这样的CPU,不需要去更更改一些硬件结构。一个双核的CPU有2个中央处理单元,因此不像上面我介绍的hyper-threading技术那样,操作系统看到的只是一种假象,这回操作系统看到的是真正的2个核心,所以2个不同的进程可以分别在不同的核心中同时执行,这大大加快了系统的速度。由于2个核心都在一个芯片上,因此它们之间的通信也要更快,系统也会有更小地延迟。 下图展示了一个Intel Core i7处理器的一个组织结构,这个微处理器芯片中有4个CPU核,每个核中都有它自己的L1和L2缓存。 上图来源:”Computer Systems - A Programmers Perspective” 一书 Concurrency VS Parallelism 引用Rob Pike的一句话: “Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.”Vicky Katara已经在Quora上把它们之间的区别写的很好了,这里我就不去翻译了。What is the difference between concurrency and parallelism |
|
|
|
只有小组成员才能发言,加入小组>>
4551个成员聚集在这个小组
加入小组3345 浏览 0 评论
航顺(HK)联合德赢Vwin官网 推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4272 浏览 1 评论
4301 浏览 0 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 02:57 , Processed in 0.560820 second(s), Total 76, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号