主页 > 卜八资讯 > 代表人类最高智慧结晶的CPU是怎么被发明出来的?

代表人类最高智慧结晶的CPU是怎么被发明出来的?

从无到有(make something from scratch)一直是工程师的浪漫,例如自行调配出作业系统、自己写系统核心等(如Linux)。然而在家从无到有打造出「一颗」CPU 就没听过了吧?最近有一位YouTuber 就在免焊万用电路板(俗称面包板)上,以跳线实做出自己设计的CPU。

CPU(中央处理器),这么一小颗神奇的高科技黑方块,是现代电脑的核心元件,大多数电脑装置都是64 位元CPU,技术层次之深、设计之复杂,要从无到有重新设计、打造出全新的CPU 谈何容易?1970 年代个人电脑刚萌芽时期的Intel 8008、Zilog Z80 等8 位元处理器相对单纯原始,应该比较容易做得到吧?尽管如此,从无到有开发出一个新的8 位元CPU 也不是容易事。

不是AMD、Intel、ARM等大公司,自己打造CPU有可能吗?YouTuber 保罗‧君士坦丁(Paulo Constantino )就向大家证明了这并非办不到的事。他在自己的 Github 进行名为Dreamcatcher的完全自行开发电脑计划──把电脑里每个必要元件都重新设计、手工做出来。

对未受过训练的人来说,君士坦丁的CPU 作品看起来就像板子上一团又一团的电线。他的作品基于74HC 系列的CMOS 积体电路,插在面包板上用电线跳接起来,他花了两天时间画电路图、一个星期时间实际制作。目前还很简陋,编写程式需要用DIP 开关进行,根据影片,目前只运作过简单程式:从0 记数到255(用一排8 个LED 灯以二进位表示)、演奏音阶、演奏走音的玛莉兄弟主题曲。

简陋归简陋,不过影片拍摄的时候是8 位元,现在已经进化到16 位元,一共拥有256 道指令的指令集(instructions),现在还做好了简单的BIOS(基本输入输出系统),当然又是另外一团电线乱乱的面包板。谢天谢地,终于可以输出画面到萤幕上了,君士坦丁的下一个目标就是再做好连接键盘的功能,这样写程式就方便多了,最终目标又能运作MS-DOS 或Minix 系统。

这样用面包版绕线做CPU 原型简直就像愚公移山,不过今日我们认为PCB 印刷电路板印制、硬体描述语言(Verilog VHDL)、FPGA(可程式化的积体电路)技术是理所当然,而1980年以前,还没有这些技术,CPU 原型就是如此打造。一位矢志从无到有重造轮子的自造者,自然要用古法来制作CPU 原型啰。

更多手工自制CPU

看过君士坦丁的作品,我们可能以为全世界就只他一个疯子,其实不然,这种手作CPU的非商业专案以前就有了,例如说一位日本老前辈在1975年时自制16位元CPU作品「EASY-4」就是其一,而且现在还在继续改良。

看腻了一团又一团电线后,让我们来瞧瞧Homebrewcpu 自制的16位元迷你电脑Magic-1,这个CPU体面多了,有个漂亮的外壳,设计也是采用74系列的积体电路,比起起步没多久的Dreamcatcher,Magic-1更神了,它靠作者一人独自开发了十年,最后完成完整电脑,系统时脉虽然只有4.09 Mhz,但执行的系统可是多人多工的Minix 2 ,不只会从0数到255,还是一台连上网路的server,其上运作了网页伺服器提供这个网页,还可用以下这个命令登入:

telnet magic-1.org 51515

账号是「guest」、密码为「magic」,假如你会Unix 指令,可以好好探索一番,里面也有经典程式如Eliza、Conway's Life 或Hunt the Wumpus。如果你不嫌弃这台机器的龟速,上面也有C 语言的编译器可供开发程式。

更进一步,用积体电路在面包版上绕绕线做CPU不算什么,更有趣的,是完全用电晶体做自己的CPU。巨无霸处理器──詹姆士‧纽曼(James Newman)的 Megaprocessor专案就是这种计划,该计划目标打造巨大的「微」处理机,足足有一个房间那么大。

它是一「颗」16 位元的CPU,内含4 万个电晶体,光是一个8 位元加法器的元件就有一个大人脚板那么大,运作时脉达20Khz。这个大家伙看起来就好像1950 年代的大型电脑还魂,也像一些老派科幻电影里才会出现的电脑。

为何要重新发明

类似的计划,在YouTube 搜寻homebrew CPU 可以找到各式各样作品。然而说回来,这样依古法重造不是很浪费时间跟聪明才智吗?这些人疯了吗?其实不然,比如说现代大大小小电机设备的基础──马达(电动机)我们已司空见惯了,但还记得国小高年级时,自然科学的课程要求每个小朋友用漆包线、铁钉、磁铁手工打造电动机吗?其实大家小时候做的事情跟19 世纪马达的发明人做的事情没两样。

现代美术的核心已是以电脑绘图为主,然而美术基础教育仍是从铅笔、炭笔素描与水彩静物和户外写生开始,为什么学科要这样安排,是因为透过手作创造早期经典,能最佳掌握一门学问的核心原理,例如说《大人的科学》杂志也是在做类似的事。

今日的CPU 已发展到内含数十亿电晶体,一个高阶语言程式原码用编译器生成可执行机器码后,CPU 实际执行时的运作细节每每不完全为我们掌握,就像黑盒子,甚至CPU 有可怕的设计漏洞我们也浑然不知使用许多年。

对资讯科学的教育而言,搞懂CPU 的运作机制有其必要,以前述Megaprocessor 专案来说,其实就是英国电算科技历史中心(Centre for Computing History)的展品,由于全面使用电晶体实做,所以可把微处理机放大到每个单元──运算/逻辑单元(ALU)、通用暂存器、特殊暂存器、状态机、IO 输出入等,能分门别类呈现在眼前,辅以满满的LED灯显示,得以即时观测CPU 如何执行程式,而不用跟哆啦A 梦借缩小灯钻到市售CPU 里。

Megaprocessor 是非常有教育意义的一台机器,那Magic-1、Dreamcatcher 等较小型土法炼钢做出的CPU 呢?探究他们的开发者,不全然只是业余嗜好,许多是软体工程师、资讯科学系所的大学生,为了设计好的编译器或纯粹想搞懂CPU 运作原理而实际打造。

当我们在说「为什么我们做不出自己的引擎?」「为什么我们做不出自己的CPU?」抱怨基础科技力低落时,是不是应该要自省:我们是不是问得多、做得少,做得不够深入呢?以后看过教科书的理论,不妨亲手做看看,先不管啥崇高的理念,Just for fun!

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!