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

当前位置: 金赞 > 玩法介绍 > pt平台评测 - 你能做出这道小学生水平的应用题,就解决了计算机的一个大问题

2020-01-11 17:36:48
人气:2920

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

pt平台评测,本文由《万物》杂志官方微信

“把科学带回家” 提供

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

一起来看看。

关键概念

超线程

材料和操作

这个问题是这样的。

小明、李雷和韩梅梅的妈妈因为很穷,只能给孩子们做烤面包当早饭吃。3个孩子都在人教版小学上学,吃完早饭要麻利地去学校上学。

但是因为妈妈很穷,只能买临保,甚至是过期的面包。孩子们要吃到两面都烤熟的面包才不会拉肚子,也不会挨饿。

同时,妈妈买不起烤面包机,只能用炭火给孩子们烤。而且炭火一次只能把面包的一面烤熟,而炭火炉很小,一次只能烤2片面包。

妈妈通过大量的实际操作发现,把1片面包的1面烤熟要1分钟。

现在问题来了。把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的两面都已经熟了,拿走;b1和c1也熟了。把b翻过来,烤b2。

2-3分钟:

烤b2和c2。

第3分钟结束时,3片面包都烤好了,大功告成!

这个问题看起来就像小学生的智力题,但实际上利用它背后的逻辑,则可以提升计算机处理器的速度。

这种计算机技术,就叫做超线程(hyper-threading)。点我查看这么聪明的英特尔的一个价值5亿美金的黑历史。

超线程是英特尔在2002年发布的一种技术,应用在xeon、奔腾4等处理器里。

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

单线程(左),超线程(右)。不同颜色的方块表示不同的任务,灰色方块表示闲置的计算单位。

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

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

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

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

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

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

无标注图片来源网络。

动图来源和参考资料储存于石墨:

https://shimo.im/docs/vvvkyjywrhwvj3qg/