当前位置:主页 > W易生活 >你所不知道的经典科技发展史:以前 CPU 如何设计出来的?

你所不知道的经典科技发展史:以前 CPU 如何设计出来的?

2020-06-18   分类: W易生活   参与: 811人  作者:
你所不知道的经典科技发展史:以前 CPU 如何设计出来的?

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

你所不知道的经典科技发展史:以前 CPU 如何设计出来的?

 Paulo Constantino 自製的 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 如何设计出来的?

 Paulo Constantino「写」程式的方法。

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

你所不知道的经典科技发展史:以前 CPU 如何设计出来的?

 Z80 CPU 的原型。

更多手工自製 CPU你所不知道的经典科技发展史:以前 CPU 如何设计出来的?

 EASY-4。

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

你所不知道的经典科技发展史:以前 CPU 如何设计出来的?

 Magic-1 CPU。

看腻了一团又一团电线后,让我们来瞧瞧 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!

相关文章

文章热点

最新信息

随机文章

申博太阳城_45倍奔驰宝马技巧|生活疑难杂症|健康养生知识|网站地图 sunbet360 菲律宾申博企业法人