球友会

最新动态

深度长文:从一粒沙子到人工智能,计算机的底层本质到底是什么?

如果我告诉你,你面前这台能刷视频、能玩3A大作、能跟你聊天对话的计算机,拆到底层其实只有两种状态:通电,和断电。 你会不会觉得我在开玩笑? 别着急反驳。 整个计算机文明的全部秘密,说穿了就这一句话:用电的通与断,模拟逻辑的真与假。剩下所有你看到的复杂功能,全都是这句话一步步推导出来的结果。 先从最基础的砖块说起。 你家里随便一个灯泡,按下开关就亮,再按就灭。 亮和灭,两种清晰可分的状态,这就是计算机世界最小的单位:一个比特(bit)。 我们给它起个名字,亮叫1,灭叫0。就 这么简单,没有别的含义,也没有多余的花样。 一个比特当然没什么用,就像一个灯泡只能亮灭,干不了别的。但如果我们把很多个比特拼在一起,再加上一点规则,事情就开始有意思了。 比如,我们把两根电线接到一个特殊的电路上,定下一条规矩:只有两根线都通电的时候,输出端才通电。 换句话说,两个输入都是1,输出才是1。这就是“与门”。 听起来玄乎,其实生活里到处都是:你家门上装了两把锁,你和室友各拿一把,必须两个人都用钥匙开门,门才能打开,这就是一个现实版的与门。 类似的基础门电路还有几种:两根线只要有一根通电就输出通电,这是“或门”,就像卧室的双控开关,按哪个都能开灯;输入通电反而输出断电,反过来的,这是“非门”,相当于按下去就关灯的开关。 就这三样:与、或、非。 听起来少得可怜对吧?但神奇的地方就在这:只用这三种简单的门电路,互相组合拼接,你就能拼出所有你能想到的逻辑运算。 其中最关键的一步,是拼出加法器。 很多人可能没想过,加法本质上就是一种逻辑操作。 我们用二进制来算:0加0等于0,0加1等于1,1加0等于1,1加1等于10(进位)。 就这四条规则,刚好能用与门和异或门的组合完美实现。 没错,就这么一堆开关,接来接去,居然就能算数了。 有了加法器,整个算术世界就都打开了。 减法怎么算?加上一个负数就行。 乘法?就是同一个数反复加很多次。 除法?就是反复减去同一个数,看能减多少次。 哪怕是开方、求对数这些复杂运算,拆到底层,全都是加法和一点点位操作的组合。 到这儿,我们其实造出了一个计算器。你按数字、按符号、按等号,它给你结果。 但计算器不是计算机。差在哪? 差在“能不能自己知道下一步该干嘛”。 计算器每一步都要等人按按钮,人告诉它做什么它才做什么。 但真正的计算机,可以自己把一整件事从头到尾做完,中间不用人插手。 这一步跨越,是整个计算机发展史里最关键的一跳。 怎么实现? 很简单,我们需要两个东西:一个地方专门存指令,一个东西专门按顺序读指令并执行。 存指令的地方,就是内存。 你可以把它想象成一整排密密麻麻的小开关,每一组开关都能记下一串0和1。这串0和1可以是一个数字,可以是一段文字,也可以是一条命令,比如“把两个数加起来”“把结果搬到某个位置”。 而负责读指令的,就是CPU里的控制单元。 它一辈子只干一件事,无限循环:从内存里取出下一条指令,翻译一下这条指令是让谁干活、干什么活,然后发出信号让对应的电路执行,执行完再取下一条。 就这么简单的循环,每秒能跑几十亿次。我们所有的软件,本质上都是在这个循环上跑起来的。 但真正让计算机从“专用计算工具”变成“万能通用机器”的,是一个乍看很普通、实则石破天惊的设计决策。 那就是:在内存里,指令和数据,长得一模一样。 同样一串二进制代码,比如01011001,你告诉CPU这是数据,它就拿去做加法;你告诉CPU这是指令,它就去执行对应的操作。 它们在物理上没有任何区别,没有任何标记告诉你这是命令还是数字,全看你用什么方式去解读它。 这意味着什么? 意味着程序可以自己改写自己。 一段正在运行的代码,可以一边运行,一边生成一串新的0和1,写进内存的某个位置,然后CPU跑到那个位置,直接执行这段刚刚才被创造出来的新代码。程序不再是一个写死的剧本,它可以在运行的过程中,修改自己的剧本。 这个架构,就是冯·诺依曼架构。 就这一个设计,直接让计算机从“只能干特定事情的机器”,变成了“可以模拟任何机器的机器”。 你现在用电脑打游戏,它就是游戏机; 用它看电影,它就是播放器; 用它写文档,它就是办公工具。 硬件还是那堆晶体管,一个都没换,变的只是内存里那串0和1。 换一串代码,同一台机器就变成了完全不同的东西。 这就是为什么一台电脑能干几乎所有事,不是因为它天生什么都会,而是因为它本质上什么都不会,只会机械地执行下一条指令。恰恰是这种“什么都不会”,反而让它变得万能。 顺着这个逻辑往下推,很多高大上的概念一下就落地了。 能不能写一个程序,专门把人类写的编程语言翻译成CPU能懂的机器码? 当然能,这就是编译器。 能不能写一个程序,让它模拟出另一台计算机的硬件环境,在里面跑另一个系统?能,这就是虚拟机。 能不能写一个程序,专门管理所有其他程序,分

about image