撰写了文章 更新于 2018-08-09 10:05:25
微硬公司MHRD:CPU是怎样炼成的
从晶体管到CPU的过程及原理,大部分人,即使是相关专业的朋友,可能都不会完全了解。这个过程所包含的知识,虽然都是标准的大学课程,但是通常分布在三个不同专业乃至不同系别、不同的学院里。他们分别是《模拟电子技术》(弱电、电子科学方向)、《数字电子技术》(集成电路、嵌入式开发方向)和《计算机组成原理》(计算机科学技术方向)。笔者当年摸瞎有幸选了个大类招生的专业,以上三门课程都是必修专业课(苦笑……)。当然,这些知识对于我这条失去梦想的咸鱼来说根本没啥用处,除了偶尔吹水装X以外,也就用来死磕这种真“硬核”游戏了。
TIPS:不知道该干啥?自己去查手册和说明书!
《微硬公司MHRD》模拟的是上世纪八九十年代集成电路的开发过程。玩家需要从一个与非门NAND 开始,逐步搭建起一个CPU。所以,本篇其实不是攻略,最好的攻略就是相关专业课程和教材。游戏内容并不涉及模拟电子技术的相关细节,不过为了有始有终,这里也顺带和大家分享一下。
晶体管:新世界的大门
大家还记得以前学过的物理吗?一般电阻的电阻值会随着温度的升高而增大。这个现象也可以理解为:我们可以通过改变温度的高低来控制电阻的大小。但是改变温度这样的操作已经很麻烦了,更不要说精确控制。所以虽然这个现象很早就被发现了,人类的世界线也没有因此发生变动。
1947年12月23日,美国新泽西州墨累山的贝尔实验室里,3位科学家——巴丁博士、布莱顿博士和肖克莱博士发明了一种电子器件,这种由硅晶体加工制成的器件可以实现:通过改变一个微小电流的大小来控制一个巨大电流的大小。这个被称作晶体管的器件点开了人类的三本科技树,是现代集成电路发展的基础,极大推进了计算机技术的发展。
就是这玩意儿……
《模拟电子技术》这门课程讲的就是晶体管的物体特性和使用方法,其中非常重要的一点,就是使用晶体管可以制成具有与非特性的逻辑运算模块。而通过若干个与非模块相互连接组合,可以实现所有的逻辑关系。当然,晶体管也可以组成与、或等更直接的逻辑运算,不过与非是性价比最高的,这和晶体管本身电学性质有关。买过芯片的朋友应该知道, 74LS系列里74LS00与非门芯片一般是最便宜的。
最基础的TTL与非门电路,其中名称为T的器件就是晶体管。
集成电路:自动化高速公路
逻辑学原本只是数学的一个范畴,各位肯定记得以前数学课学过的与或非之类的东西。在晶体管发明之前,逻辑也只是一种数学工具。而晶体管、逻辑电路的出现,使得这些数学理论有了实质应用的平台。前边我们提到过,晶体管可以制成与非电路,而与非电路可以制成与、或、非、异或等任意一种逻辑运算模块。而通过这些逻辑运算模块,我们可以组成具有运算、存储、比较、选择等功能的复杂逻辑运算模块。
当然,仅用晶体管来组成这些复杂逻辑实在是划不来。大家可能听说过、或者看过相关视频:大佬在《我的世界》、《星界边境》等游戏里用道具手工搭建可以实际使用的计算器、CPU等等。理论上,游戏中只要具备了实现信号传递和与非逻辑的相关道具或条件,并且数量、空间足够,就可以搭建任意一种电子芯片,哪怕是战术核显卡。但是这样做实在是太复杂太耗时,在现实世界里还要考虑人工、成本等问题。1946年制成的第一台电子计算机“ENIAC”,一共由18000个晶体管,占地170平方米,重达30吨,耗电功率约150千瓦。此时的电子技术还没到达能够走进千家万户的程度。
红石电路制成的计算器(来源不明……)
改变这一现状的,是德州仪器Texas Instruments。这家公司在1958年生产出了具备商用价值的集成电路。所谓集成电路,也就是我们平常在各种电路板上看到的那些小黑方块,把一个电路中所需的晶体管等各种元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构。从二十世纪至今,集成电路工艺水平不断提高,造就了现代高速发展的电子产业。
前边提到的74LS00芯片,实际就长这样,大约3厘米长
在《微硬公司MHRD》中,玩家就是一名集成电路工程师,我们负责的工作是设计集成电路芯片。从最简单的与非门开始,到计数器、存储器,最终目标是一个16bit的CPU。游戏还是简化了一些内容:我们不需要关心电平、延迟等问题,也不需要用到除了逻辑电路之外的电子器件,更不用关心焊接、排线等实际操作因素。简而言之,把各个芯片的引脚连起来,实现需求中的功能,就可以了。
第一项工作:用与非门制作一个非门
这个游戏的内容实在是过于现实,以至于我直接把当年的《数字电子技术》课本拿出来当攻略(老师对不起Orz)。这个游戏玩的也是设计、推导的思考过程,直接看答案就没意思了。如果实在卡关的话,直接在网络上搜索相关的器件,如果你看到一堆课件PPT、电路图纸之类的东西……嗯,没错的,这些就是答案(捂脸)。
CPU: 计算机的动力核心
《微硬公司MHRD》的最后两项任务,分别是设计一个解码器和CPU。比起之前的工作,这两个任务复杂度提高了一个层次。如果对CPU的组成没有了解,恐怕连任务需求都看不明白。CPU的设计,涉及到了CPU本身的一些工作原理,比如指令的含义、内存的读写,等等。如果没有看过相关的资料,一定是一头雾水。而这些内容,就是《计算机组成原理》的一部分。
大致来讲,一个最简单CPU需要包括运算器、程序计数器、数据寄存器和地址寄存器。前两个分别逻辑电路中的是运算模块和计数模块,后两个则是逻辑电路中的寄存器。运算器顾名思议用来做运算,相当于一个加减法计算器。程序计数器用来记录当前指令的行数,从0开始,每执行一次指令,行数就加1,这样CPU就能顺序执行一大串预先编辑好的代码了。 数据寄存器用来存放运算器的结果,方便做连序加法之类的操作。地址寄存器则是存放数据的内存地址,可以让CPU向外部的内存读写数据。
CPU的功能说明
除了这些,CPU还需要一些基础逻辑模块,根据指令对四大模块进行操作控制。只要用正确的方法把他们连接起来,一个16bitCPU就制作完成了。游戏中的文档对指令的各个状态以及控制对象有详细说明,但却没有解释其中的含义。再加上游戏中的测试方法非常有限,只能使用固定的几个测试用例,发现问题之后调试排错过程很不方便。作为本作游戏的最终关卡,这样的难度也算是理所当然吧。如果你坚持到这一步,把CPU做完,那么恭喜你,游戏通关了!而且是全成就!老板会给你好几个月的假期,并且表示之后还有更重要的任务交给你!醒醒,工头喊你去搬砖
作为一款不那么“游戏”的游戏,《微硬公司MHRD》推荐给了解过或者学习过数字电子技术并且愿意自觉加班的朋友们。如果只是感兴趣,那就要做好下一番功夫的心理准备。游戏会统计每一项任务中使用的与非门数量,可以和好友、全球玩家一较高下。至少对于我来说,最后CPU测试通过的那一刻,确实是非常有成就感的。
如果能支持vi键位就更棒了XD
正文完
送给有自己焊电路板的想法的朋友:
虽然手焊CPU不科学,但是自己做个声控开关、红外线台灯之类的东西,还是挺简单的。一套基础装备大概100RMB:万用表、电烙铁和可调电源。其中,可调电源可以自己焊,一般手焊电路板的入门第一课就是用普通的直流充电器做一个可调电源。大部分元器件、 焊板价格不超过3块钱,集成电路芯片稍微贵一点,一般也不超过10元。建议到当地的零件市场或者商店看看,网购实在是不划算。如果你真的是零基础,那么最好请教一下身边有经验的同学、朋友,毕竟是用电的东西,还是要注意安全,不然会发生危险(10伏上下电不到人,但是器件连接不正确可能会烧甚至会炸)。
不明飞行物 1年前
机械电子工程表示都学过……
发布
Nook 1年前
发布
yep 1年前
超硬核的游戏啊。。
发布