上次看到那个旧硬盘说“坏了”,实际上并不是硬盘确实烧毁了。它只是像那辆老迈的丰田普瑞维亚,转速掉得比蜗牛还慢,喇叭都懒得响,就是不肯给钥匙。你让它在 40℃的环境里宁静躺三天,它还能转;但要是你把它扔进 25℃的夏天,要么 50℃的沙漠,它得赶紧吐个黑烟,报警说它“过热”,否则它就会像颗被冻僵的西瓜一样冻住,彻底罢工。 这背后的门道,实际上就是个“泵站”的难题。计算机的“大脑”是 CPU,它得一口气吞下所有的数据,就像人进食一口吞下整碗饭,不能嚼碎了咽下去。
这个吞下动作,用的就是“泵”这个概念。CPU 内部有个叫总线的高速公路,上有几百根线,数据就是在这条高速公路上跑。
可是,高速公路是有极限的,要是数据跑得忒快,超过了那根线的承受本事,线就会断,要么线表面有电火花,那就是短路,烧主板了。 故此,CPU 自己得干活,找个“泵站”把数据压得慢吞吞地推那会儿。
这个泵站就是“缓存”(Cache)。缓存就像家里桌上放的那个速热宝。你刚把菜端上桌,还没等菜端完,先让速热宝把温度调成 100 度,菜自然就熟了。CPU 需求数据的时候,直接从速热宝里拿。
要是速热宝里数据不够,CPU 就得开“大泵”,把数据从硬盘里挖出来。
要是硬盘那边数据不够,CPU 就得开“特大型泵”,从内存里挖。
这时候,内存就像个庞大的冷库,数据都在里面,只是得慢慢翻找。 这就好比一个仓库管理员,他手里拿着个超级大号的搬运罐子。
要是罐子忒小,他扛个一般/平平快递盒子就倒了;要是罐子忒大,搬个几斤重的箱子就扁了。
故此,那会儿都是“小罐子”扛大箱子,后来为了扛重物,把罐子也搞大了。 这叫做“膨胀”(Expanding)。
那会儿内存只有 16 位,一次只能存 64 个字节的数据;目前变成了 64 位,一次能存 256 个字节。
这个 256 字节相当于一个庞大的压缩包,里面装了几千个一般/平平大小的快递盒。CPU 不用再反复去翻找小罐子了,直接从这个大罐子里拿,瞬间就能搞定。
这就是为啥电脑要“膨胀”。 这背后的物理原理实际上就是一场“压缩”与“膨胀”的博弈。硬盘的硬盘头在旋转,就像家里的转盘,转得越快,速度就越快。
可是,转得越快,摩擦形成的热量就越大。过热会让磁记录混乱,数据就读错了,这就好比背书的人念得飞快,结局大脑还没反应过来,书已经烂了在嘴边。 故此,CPU 得找个“冷却泵”。散热器就像个大风扇吹着空调口,把热量抽走。
要是散热泵不中,风扇转得再快,热量还是堆在芯片上,芯片就会“喘气”,性能就掉下来了。 这就涉及到底层的“泵送”机制。在早期的磁带库里,数据是磁带上传下来的,就像把一箱箱货物从仓库搬到机房。但磁带只能存,不能读,并且一旦中断,前面的数据就丢了。计算机要读数据,就得把硬盘里的原始数据“拉”出来,经过格式化,变成刚刚提到的“块”,然后拿去存到硬盘里,就像把货物装车、发运。 这又回到了“搬运工”的难题。
那会儿的硬盘滑道挺窄,数据得一个个滑那会儿,像爬楼梯一样,速度慢。
后来发明白“磁盘阵列”(RAID),就像把整个仓库改造成流水线。几台硬盘组在一起,数据在硬盘之间互相“搬运”一下,速度就快了。
这就好比大家用公共水泵,一个人抽,一个人放,效率翻倍。 目前的电脑是“集群”模式。一个“服务器”能够连接几十台电脑,要么几十台服务器。就像几个厨师 cooks 在一起,分工搭伙。一个负责切菜,一个负责炒菜,一个负责端盘子。电脑本身就是一个超级大的灶台间,里面有海量的“食材”(数据),需求厨师们配合才能做出来“美食”(应用)。 故此,当你在浏览网页时,实际上是在做一件事:你在一个庞大的“云灶台间”里,找一个厨师(浏览器进程),让他去取一个食材(网页数据),然后交给另一个厨师(服务器),让他去做一个菜(渲染网页)。
这个过程里,数据在“硬盘”里“搬运”,在“内存”里“搬运”,在“总线”里“搬运”,就连有时候还得经过“缓存”的“搬运”。 要是哪个环节堵住了,比如总线忒挤,要么缓存忒满,数据就卡住了,整个网站就“卡”。就像一条拥堵的高速公路,车都挤在一起,你推一下,前面的人就被挤不动了。
这时候,网络运营商(像高速公路局)得修红绿灯,要么调整限速,让数据“流动”起来。 计算机的核心,实际上就是个不停的“搬运工”在“泵”动数据,把各种形态的数据,从不同的“仓库”(存设备),通过“高速公路”(总线),送到“工作台”(CPU)去处理。
这个“搬运”的过程,就是计算机最根本的思维方式。 你看那个老式的机械键盘,按键是物理的,就是按下去,它就跳起来,像刚刚说的“泵送”。目前键盘板上的电容和电阻,就是目前的“液压系统”,它们受电压管住,电压高了,它就跳得快;电压低,它就跳得慢。 再想想那个老式的显示器,像素点一个个亮,就像一个个开关,一个接上一个接。目前的屏幕是“液晶”,就像一个个小灯泡,亮的时候,电子流就那会儿,不亮的时候,电路断了。 这实际上就是一种“泵”在干活。在计算机里,没有“泵”就不会有数据流动。CPU 需求数据,就从总线里“泵”过来;要是需求刷新显示,就从显存里“泵”出来。
要是没有这个“泵”,数据就是静止的,计算机也就成了一台静止的木头棺材。 故此,计算机的工作原理,本质上就是一个庞大的、永不停歇的“泵送系统”,在钢管与钢管之间传递着人類的思想。