APP下载

你能做出这道小学生水平的应用题,就解决了计算机的一个大问题

2020-03-13

电脑报 2020年1期
关键词:烤熟调度英特尔

今天有一个奇趣的小学生水平的应用题给你。不要小看这个问题,它背后的思想解决了计算机的一个大问题,成为了英特尔奔腾4处理器的核心技术。一起来看看吧。

关键概念:超线程

这个问题是这样的。

小明、李雷和韩梅梅的妈妈因为很穷,只能给孩子们做两面烤熟的烤面包当早饭。妈妈买不起烤面包机,一次只能把2片面包的单面烤熟,烤熟一面要1分钟。现在问题来了,为了让3个孩子都早点去人教版小学上学,把3片面包的两面都烤熟,至少需要多少分钟?

你能想出来,聪明的妈妈是怎么在3分钟内烤好面包的吗?

答案和解析:

假設3片面包分别叫做A、B、C,它们分别有1和2两个面。面包A的正面叫做A1,反面叫做A2,以此类推。

按照一般思路,先把A和B两片面包的两面都烤熟,用去2分钟。然后再单独烤C,这样又要用去2分钟,需4分钟。

怎样才能在3分钟内烤完呢?这就是在更少的时间里处理多任务的奥义了。关键在于,不要急于求成。

0~1分钟:烤A1和B1。第1分钟结束时,把B拿走,换C。此时,A1、B1烤熟了。

1~2分钟:烤A2和C1。第2分钟结束时,A的两面都已经熟了,拿走;C1也熟了。把B放回来,烤B2。

2~3分钟:烤B2和C2。第3分钟结束时,3片面包都烤好了,大功告成!

虽然这是小学生的智力题,但实际上利用它背后的逻辑,则可以提升计算机处理器的速度。

这种计算机技术,就叫做超线程(Hyper-threading)。这是一项英特尔的黑科技。

超线程是英特尔在2002年发布的一种技术,应用在至强、奔腾4等处理器中,奔腾4的标志上的HT字母就是代表超线程技术。

用下面这张图可以解释 CPU里发生的事情。CPU里其实有好多调度单位,它们类似于一个个烤面包的烤位。

如果按照左边的单线程处理法,就等同于4分钟的那种烤法:在烤C面包时,另一边的烤位白白浪费了。图里灰色的调度单位相当于闲置的烤位,没有执行任何任务。所以在浪费了这么多调度单位的情况下,完成两个任务(黑色和绿色)的时间就比较长。

但是在超线程(右图)的情况下,绿色的任务穿插在黑色的任务里,大部分的调度单位都被同时有效利用,类似于3分钟的烤面包法,两边的烤位随时都在烤面包,大部分烤位没有被浪费,所以两个任务总体完成时间更短。

在超线程技术出现前,CPU只能同时处理一个线程,就像左边的那种方法。

但是超线程让CPU可以同时进行两个及以上的线程,在更短的时间里完成更多的任务,大大提升了计算机的计算效率。根据英特尔的说法,超线程可以让CPU的性能提升30%。

不过,超线程也不是对所有类型的任务都有效。那些比较大的软件,比如影片编辑就可以有效利用超线程技术来提高效率。但是如果是文字编辑、浏览器等小任务,那么超线程CPU的效率优势就发挥不出来了。

下次你妈问你,为什么做一会儿作业就要刷一会儿剧,你可以向她科普超线程的原理,告诉她这样你可以在更少的时间里做更多的作业,看更多的剧嘞。

(本文经授权转载自“把科学带回家”微信公众号,有删节)

猜你喜欢

烤熟调度英特尔
水资源平衡调度在农田水利工程中的应用
智能四向穿梭车系统的应用与调度对策研究
10kV配网调度运行故障及控制对策
英特尔发布第三代英特尔至强可扩展处理器
英特尔宣布发售英特尔Stratix?誖10 TX FPGA
我喜欢的课
英特尔召回
烈日当空,看小编如何避暑
烧烤味