400年前欧洲数学家遇到的难题,恰如中国电脑手机目前最大的“草稿纸困境”。
1637年的某一天,有一位法国律师在自己的书房里呆得很无聊,就想找点事来消遣一下。这位律师喜欢的事情和普通人不太一样,没事特别喜欢做数学题。别人做数学题会觉得很辛苦,动脑筋太累了。这个人还真的是非常特别,他就喜欢动脑筋,脑子根本闲不下来。而且他还不是简单地拿本练习册做一些数独题、算数题,而是一定要做难度很大的数学题。
也正是因为他这个独特的爱好,他竟然成了一位远近闻名的业余数学家。毕竟本职工作还是律师,再有名也只能算业余数学家。到后来,他的数学水平越来越高,而且他还做出了很多专业数学家都非常羡慕的成就。到了后世,没有人记得他打过什么官司,记住的都是他的数学成就。
就是这样一个人,在1637年的这一天,翻开了一本流传了一千多年的数学书。这本书里记载了很多解方程的题,他平时也喜欢没事翻翻这本书,解一解里面的题。
今天也一样,不过这次他把注意力放在了一道题上。书里预言了这道题是不会有答案的。之所以是预言,就是因为这本书的作者并没有说为什么没有答案,没有任何思考过程,只一句话,没有解。你要是说这是作者预言的也行,要是说他就是瞎蒙的,也没错。这位业余数学家发现的这道题就属于特别难的题,要不然也不会一千多年以来始终都没有人证明出来,也没有人给证伪。
可是这一天不知道怎么了,这位业余数学家就忽然灵感爆发,一下就在脑子里面迸发出很多很多想法,虽然没有人知道那一天具体发生了什么。可能是他太聪明了,根本不需要草稿纸,就是在脑子各种心算,结果竟然找到了这个问题的证明方法。一千多年没人可以搞定,被他搞定了,他当然非常兴奋了。于是他就非常想把自己的思考过程记录下来,这样就可以让更多人看到了。
可是当他准备动笔的时候,结果却发现,这本书旁边留下的空白太少了,根本不够把思考过程写下来。也可能是他兴奋过后太累了,于是只在书的空白地方写下一句简单的话:“关于这个问题,我发现一种美妙的证法,可惜这里的空白处太小,写不下。”
讲到这里,我想你已经知道了,我说的这个律师其实就是费马,他声称自己证明的问题就是大名鼎鼎的“费马大定理”。费马当时是不是真的找到了证明的方法,没有人知道。不过,这个问题最后是又过了三百多年,在1995年才被数学家怀尔斯给证明了。如果当时费马真的已经把这个问题证明出来了,只是因为纸太小没有把答案写下来,最后要等到三百多年后才再一次被证明,那么这就是一个巨大的悲剧。
费马大定理的悲剧虽然终结了,但是和这种情况类似的悲剧可没有消失,这样悲剧的事情在电脑中一直发生着。处理器就是电脑的大脑皮层,它是电脑里最关键的部分。既然是最关键的部分,那是不是就要被重点照顾,想尽办法提高处理器的性能,提高它的运算速度呢?只要处理器运算速度高了,整个电脑的能力就会更强了。所以,研究电脑的科学家和工程师都会想尽办法提高处理器的速度。
电脑的处理器速度也的确是在飞速发展着,可是让科学家和工程师们想不到的是,没多久就出现了问题。这个问题就是电脑“思考”得太快了,“草稿纸”不够用了。这不就是费马的那个悲剧嘛。
为什么这么说呢,我需要先给你介绍一下电脑的草稿纸是什么。电脑的草稿纸,就是电脑的存储设备。虽然我们把处理器比喻成大脑皮层,但处理器和大脑皮层还是有差别。
人的大脑是既有思考的能力,又有记忆的能力,如果解剖开大脑皮层的话,你就会发现各个地方没有明显的区别,你不能指着某一块就说这是管思考的,指着另一块说这是管存储记忆的。而是几乎所有地方都既有一定的思考能力又有一定的记忆能力。其实不只是大脑皮层,人脑里的其他部分,比如小脑、海马体、杏仁核也都有自己的记忆能力。
再看看处理器。
处理器就不一样了,它用来运算的部分几乎没有存储能力,它所有用来运算的信息,还有运算的中间结果和最终结果都必须马上保存起来,否则就是“狗熊掰棒子,一路掰一路丢”,光运算了什么也没有留下。所以,电脑里为了配合处理器,就需要把处理器运算需要的信息存储起来。这个为处理器存储信息的就是电脑的存储器,我们现在通常也把它叫做内存。
至于为什么叫内存,不叫外存或是其他什么名字,也是有原因的,我后面再解释,你现在记住这个名字就行了。
电脑里的内存就是处理器的草稿纸了。现在的处理器只能处理0和1两种数字,所以内存作为电脑的“草稿纸”,本质上就是一种专门用来存储0和1两种数字的设备。为什么电脑要把运算和存储两种功能分开呢?就不能像大脑一样,把它们作为一个整体吗?还是说这种方式比人脑的方式更好,效率更高呢?其实还真不是因为更好,才分成处理器和内存的,而是因为这样做更简单。
像我们人脑运算和存储能力是一体的,所以人在做题的时候一般都是先在脑子里面构思思考,等脑子装不下思考过程了,才会写到草稿纸上。人脑的思考过程那是非常快的,比写在草稿纸上快多了。而且人脑的这种结构也是非常强大的,一直以来都有一个传言说人的大脑只被开发了10%,剩下的90%都是空闲的,等到大脑被开发到100%,人就可以有超能力了。有一部电影叫做《超体》就是专门讲这个事的。
这个说法当然是假的,通过核磁共振观察大脑就可以知道:我们在思考时,大脑的不同部位虽然有一定的分工,比如左脑负责控制右半边身体,右脑负责左半边身体,但是整个人脑都是在活动的,根本没有空闲的90%。不过,这个传言能让这么多人相信,还是因为大脑有深不可测的潜力,大脑的强大是没有人怀疑的。
那为什么电脑不模仿大脑,而是要把运算的能力和记忆的能力分开呢?
不是不想,而是做不到,把思考和存储记忆的能力混合在一起的结构,的确给大脑带来了强大的潜力,但是也让大脑极度复杂。所以到现在人类科学家都没有彻底搞明白人类大脑的工作机制,更别说模仿大脑来做计算机了。也许未来有一天,人类可以做出“类脑计算机”,也就是像大脑一样的电脑,但是这一定是非常远的未来。现在来看把运算能力和存储能力分开,才是更好的实现方法。因为这样简单,能让电脑更容易地被设计和制造出来。
但是它也带来了隐患,那就是电脑的处理器速度越快,内存越是容易不够用,也就是会出现像费马一样草稿纸不够用的情况。原因就是处理器的运算性能是体现在速度上,而内存的存储性能是存储信息的多少是体现在空间上。这是什么意思呢?我先给你介绍一个电脑发烧友们的特殊爱好,这个爱好叫做“超频”——超越现在的频率。一般我们买电脑之后,厂家给处理器标了多大的频率,我们就按照多大的频率来使用。
但是就有一些发烧友,他们喜欢超频,通过修改硬件上的设置让处理器运行在更高的频率下。比如你买的电脑是2.4GHz的处理器,这要是在我们普通人的手上,这个处理器也就只能是这么快了。但是到了这些发烧友手上,还是这个处理器,就有可能让它按照4.8GHz的频率运行。这是我随便说的数字,是不是真的能超频到4.8GHz,要看具体情况。
既然处理器的速度都提高了,为了不让内存拖后腿是不是也要增加内存的存储空间?
速度快了,能处理的信息就更多了,需要的存储空间当然也就更多了。处理器速度翻了一倍,内存空间是不是也得翻一倍?这就有问题了,处理器的速率提高了,但它还是这个处理器,没有额外增加更多东西。也就是说处理器的运算速度在增加,但是处理器的硬件数量和规模并没有增加。当然我这是用超频来举例子,超频如果处理不好就会把处理器烧掉。发烧友发烧友,发烧两个字可不是白叫的。你可不要轻易尝试,这可比拆手机要危险。
处理器性能的提升可以不依赖硬件规模,内存可就不行了,内存的性能依赖于空间大小。假如说内存中一个元器件就存储了一个0、1的数据,为了匹配更快的运算速度,内存的存储空间就需要增加。存储空间需要增加多少,就代表着元器件需要增加多少,也就是相应的硬件规模需要同比例增加多少。内存存储空间想要翻一倍,内存里面的元器件至少也需要翻一倍才行。
所以用一个不严谨、但方便你理解的话来总结:处理器的速度提升可以不增加硬件规模,而内存必须等比例增加硬件规模。硬件规模更多了会怎么样?当然是更贵了。买一个内存和买两个内存价格能一样吗?更大的硬件规模就代表着更多的钱。运算速度提升可以不花钱,但是内存必须花钱。这就是问题。在电脑发展初期,处理器的速度还不是很快,内存一般都是够用的。
但是我们前面也说了,处理器是电脑的核心,科学家和工程师努着劲儿把处理器越搞越快呢。处理器的运算速度也的确是越来越快,这就代表着内存的硬件规模也越来越大,当然意味着需要购买内存的钱也越来越多,于是就出现了处理器速度和内存存储空间之间的矛盾。因为速度和时间有关,这种矛盾也叫做时间-空间矛盾。
我这里再提醒一下:刚才说提升处理器性能可以不增加硬件规模,提升内存性能必须增加硬件规模,这都是为了帮助你理解,用了最简化的例子来介绍。现实情况肯定要比这复杂得多,处理器也可以增加硬件规模来提高性能,现在流行多核心处理器就是这个思路。内存也一样,也有技术可以在不增加硬件规模的情况下增加存储性能。但无论怎么样,处理器和内存的时间-空间特性已经决定了它们之间会有矛盾。
我这里把所有问题简化再简化,就是帮你理解这一点。
但你也不用特别担心这个问题,觉得这个问题会影响你使用电脑和手机。我们现在用电脑手机也没有动不动就遇上内存不够的情况,这就是因为电脑工程师们发挥出了自己的聪明才智,找到了既可以少花钱又可以不让处理器缺“草稿纸”的方法。
时间-空间的矛盾本质上是什么?本质上就是增加内存空间的费用太高了。那是不是可以降低增加内存的费用呢?我们可以一起来思考一下。内存的关键是什么,就是记录信息啊。用纸可以记录,用丝绸可以记录,用竹简也可以记录0和1。同样是记录信息,显然用纸更便宜。那电脑工程师们是不是找到了什么便宜的方法来记录信息呢?如果真的便宜到像纸一样,那是不是内存就可以无限供应,也就没有内存不够的问题了呢?
找便宜的方法来存储信息,这是一个很好的答案。这个答案看似很low,背后的道理却非常深刻。这里多讲点其他知识。现在的纸可以这么便宜你知道为什么吗?那可全靠了我们中国人,尤其是东汉的蔡伦。没错,就是那个发明造纸术的蔡伦。准确地说,蔡伦并不是第一个把纸这种薄薄的可以写字的东西发明出来的人,甚至都不是我们中国人最先发明出来的。
最早发明出纸的,其实是距今四五千年前的古埃及人,那个时候的中国估计大禹还在治水呢。当时古埃及发明的那种纸,叫做莎草纸,其实就是一种用特殊草编织出来的薄席子,很软很薄,可以折叠可以写字。这种纸很好用,而且还更容易保存,但是这种纸造价特别高,很多人根本用不起。在古埃及,很多人即使有莎草纸也不敢随便写字。有的时候纸不够用了,也不舍得买新的,用一种特别的方法把以前的字擦掉,然后继续写。
不只是莎草纸,很早之前欧洲用到羊皮纸也一样,也是纸不够了用小刀刮掉旧字然后再写新字。很多古书的信息就是这么丢掉的。
蔡伦发明纸是在东汉,论时间不如古埃及早,论结实程度不如羊皮做的羊皮纸。它能成为四大发明之一,就是因为便宜。只需要用一些树皮,破渔网,就可以做成纸,让人人都可以用。其实现在有很多人认为,我们国家古代文明可以那么发达,就是因为早早地有了这么便宜的纸,可以让古人们把自己的思考和经验积累下来。
一个便宜的方法,看似是一件小事,但它却成就了我们中华文明,甚至可以说成就了全部人类的文明。毕竟人类大部分的智慧都是记录在纸上,写在书里的。所以,别觉得考虑内存价格,看看怎么更便宜,这种想法太小家子气。在电脑里面,一个便宜的存储设备,它带来的价值可能就和蔡伦发明纸一样,能让所有人都用得起电脑,也正是因为这样我们现在才会有这么发达的网络文明。
最开始的时候,也是图便宜、好操作,用来存信息的也是纸,只不过电脑不是把结果写在纸上,而是在纸卡上打孔。一个纸卡上有孔,就代表有信息,没有孔就没有信息。具体是怎么代表信息的,你其实也不用太在意,反正现在也几乎没有人用了。且慢,不对,还有一个地方在用,那就是考试时候要涂的答题卡,考试的时候经常用。答题卡,本质上就是一种打孔卡,只不过考场的时候人人都用小刀在纸卡上打孔有些危险。
所以就改变了一下,把用小刀挖空改成了用铅笔涂黑你想选的答案。电脑就会扫描答题卡,看到哪里涂黑了就认为你选择了这个答案,输入到电脑里面,就能把总分算出来了。
纸卡很便宜,用纸卡做内存不就可以把内存做得很大吗?还是不行,纸的确是便宜,可以把内存做大,但是纸有个问题,它读写起来也慢啊。你想要在纸卡上挖洞,是不是还挺费时间的,我们在考场上也会觉得涂答题卡挺浪费时间的。
如果用纸的话,空间可能够大了,但是速度跟不上。我们前面说,内存性能主要体现在空间上,那是有前提的,内存的存储速度要和处理器差不多才行。考试的时候最遗憾的不是时间到了,没有把题做完,最遗憾的是所有题都做完了,但是没有来得及把答案涂在答题卡上。脑子再聪明,草稿纸再多,但是涂卡慢,最后依然是0分。内存也是一样的。
用纸卡做记录,就算是用机器自动完成,但要想比得上处理器一秒钟十几亿次的计算也是不可能的。汽车发动机转得够快了吧,不知道你有没有注意过汽车发动机的转速表,一般最快也就是一分钟转八千次。这是一分钟啊,换成一秒钟的话,也就是转100多次。就是这样,达到这个速度,汽车的发动机就很可能被烧坏。要是一秒钟十几亿次,别说是纸卡了,就是金属也会烧得连渣渣都不剩了。
当然,我们不用纸来存储电脑信息,主要还不是慢,而是后来有了用电、用磁、用光盘的存储方法后,用纸来存储信息本身就是一件很贵的事。就比如说,现在随便一张光盘里面能存储的数据都要比一个图书馆里所有的书上存储的信息还要多。所以用纸啊,既不便宜又不快。
其实现在已经有了很多存储速度没有那么慢,而且存储空间还便宜的方法。利用这些设备,设计电脑的工程师们还真的想出了一个绝妙的方法,用来缓解“时间-空间”的矛盾。我们前面没有解释,为什么用来存储处理器数据的设备被叫做内存,现在告诉你,因为除了内存,电脑还有外存,外存就是用来解决时间-空间矛盾的方法。
外存种类其实有很多了,电脑里面的硬盘,手机里的闪存,它们都是外存。硬盘和闪存的大小决定了电脑和手机的存储空间,它们的大小代表了电脑和手机里面可以存多少游戏、照片或是视频。现在经常看到的外存空间的大小,往往都有256GB,512GB,甚至1TB。这里的关键是,外存的空间一般都很大,如果不够的话,还可以插上U盘或移动硬盘,早些年还会经常使用光盘。这些也全都是外存。
而内存比起外存就要小很多了,一般一个手机会配备512GB的外存,也就是闪存,配备的内存呢,却只有8GB。为什么会出现内存小、外存大,相差上百倍的情况呢?其中一个主要原因就是同样大小的存储空间,内存要比外存贵的多得多,因为内存的速度更快。内存读写的速度一般可以达到30GB/s,而外存,就算是现在的固态硬盘,也只能达到2-3GB/s的程度,差了10倍。
如果是机械硬盘,那就只有500MB/s了,上百倍的差距。不过机械硬盘也比固态硬盘要便宜很多,现在机械硬盘经常是几T,几十T的空间大小。
所以一个电脑里面,不是只有一种存储设备,而是有很多种,有速度快但是本身存储空间贵的,也有速度慢但是存储空间特别便宜的。它们综合起来能达到更好的效果。电脑工程师解决时间-空间问题的方法,就是同时使用两类存储器,内存负责快,外存负责大。
知道了这一点非常有用。
很多卖手机的人不懂,他们经常拿着一个手机说,“我们这个手机好啊,内存空间大,有512G,买了之后用好几年手机也不会卡。”现在你知道了,他们说的哪里是什么内存啊,是外存,手机里的这种外存技术也叫闪存技术,所以也被称为闪存空间。闪存只负责大,负责快速运行的是内存才对,一般也就是4GB、8GB。出现这样误会的主要原因还是内存和外存都被装在了手机里面,不都在里面吗,所以就错把外存当做了内存。
我相信讲到这里,你心里也有问题,明明都在电脑和手机里面,为什么一个叫内存一个叫外存呢?这个内容我们下集介绍。内存和外存能够配合起来解决“草稿纸”不够,就和他们的内存外存的名字有一定关系了。