欢迎光临KOTOO财情




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

2025-03-16 226

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

▲ Paulo Constantino 自制的 CPU。(Source:影片截图)

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 系统。

▲ Paulo Constantino“写”程式的方法。(Source:影片截图)

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

▲ Z80 CPU 的原型。(Source:By Wikinaut (Self-photographed) [GFDL or CC BY-SA 3.0], via Wikimedia Commons)

更多手工自制 CPU

▲ EASY-4。(Source:影片截图)

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

▲ Magic-1 CPU。(Source:影片截图)

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

  • Man Builds Custom 8-Bit CPU From Scratch

(首图来源:shutterstock)

2019-03-17 06:30:00

标签:   资讯头条 kotoo科技资讯 kotoo科技 kotoo科技资讯头条 科技资讯头条 KOTOO商业产经 新闻网 科技新闻网 科技新闻 Kotoo科技新闻网 Kotoo Kotoo科技新闻网 科技新闻 科技新闻网 新闻网 KOTOO商业产经 科技资讯头条 kotoo科技资讯头条 kotoo科技 资讯头条 Kotoo Kotoo科技新闻网 科技新闻 科技新闻网 新闻网 科技资讯头条 kotoo科技资讯头条 kotoo科技 kotoo科技资讯 资讯头条
227