lizi Xioocha来自Aofei Temple
小型CPU中有多少晶体管?其中数十亿。
仅构建CPU甚至完整的计算机需要多长时间?一个大个子以游戏“ Minecraft”中的实际动作回答了这个问题:这可能需要一年多。
一旦重印,就在Zhihu上构建一台计算机的教程就变得很流行。
这不是游戏指南,而是富丹大学的Ji Wenhan撰写的课程论文。当他大二的时候,他有一个大胆的主意。经过一年的仔细构造,他制造了一台名为Alpha21016的原型计算机。
尽管它不能与真实的计算机进行比较,并且只能实现一些简单的功能,但该计算机的尺寸令人惊叹,并且仅查看其复杂的结构,您已经可以感觉到大量的工程。
一些网民对课程后论文感到遗憾,这简直就是可以发表学术论文。
这台计算机能做什么
Ji Wenhan的计算机使用哈佛结构,而不是更常见的von Neumann结构。程序存储和数据存储分别位于位置。程序内存1KB和数据存储器0.5KB。
它可以实施各种功能操作:加法,减法,乘法和除法,三角函数和矩阵操作。它包含一个16位CPU和32位浮点操作单元(FPU)。
从硬件的角度来看,它是一个超大级集成电路,逻辑门的总数从约50,000到100,000不等。单独有8层记忆堆叠。
要构建这样的计算机,必须缺少数字电路,微型计算机原理,组装语言和编译原则。考虑一下您曾经参加的哪些课程,从中学习到熟练使用更加困难。
在专业知识的支持下,计算机可以分解为基本组件。
我们都知道计算机的基础是数字电路,数字电路的基础是“门”。 Ji Wenhan在游戏中使用基本的“红石电路”建造了一个逻辑大门。
从逻辑门开始,组合电路,正时电路和触发器。有了这些,可以形成CPU的一些基本单元,并且最终可以创建整个计算机。
在现实世界中,晶体管是数字电路的基础。在Minecraft中,红石电路是构成复杂电路的基本单元。
红石电路玩家可以用火把和块创建基本的逻辑门:或大门和北约大门。 OR和北约大门的组合可以创建任何逻辑门,例如和门和Xor门。
但是,仅仅知道如何制作逻辑门还不是建造计算机,这可能大致相当于创建汉字和写“红色大厦的梦”之间的距离。
Ji Wenhan首先画了他的CPU架构的素描:
每个盒子代表一个或几个硬件单元,较小的单元具有大约一个或两百个栅极电路,较大的电路具有数千个门电路。这个密集的部分是结构的右半部分:
在了解CPU的基本体系结构之后,根据体系结构图创建了每个部分,例如重要的CPU模块“算术逻辑单元”(ALU)和“指令寄存器”(IR)(IR),该(IR)具有较大的项目量。
算术逻辑单元可以进一步拆卸。它的加法器由几个完整的加法器组成。上面的基本逻辑门可以形成加法器中最基本的完整加法器(下图)。
完整的加法器也是计算机的核心组成部分。
同时,“ Minecraft”还提供了基于活塞机械的断路器,并使用信号来控制开机和关闭电路,即继电器。可以使用继电器和逻辑门的组合创建内存。
计算器→单芯片计算机→计算机
也许是因为它太复杂了,Ji Wenhan不想在一开始就设置一台计算机。
最初,他的目标是构建一个简单的16位计算器。
但是他觉得可以实现更复杂的东西,因此他想将其更改为微控制器:这是一台具有“图灵完整性”的简单计算机,可以执行所有计算机程序。
他已经计划了指令集体系结构,存储架构和说明传输方法等。
后来,Ji Wenhan成功设计了重要的电路,例如触发器,读写存储,缓冲区队列等。
有了这些,男孩制定了一个更加雄伟的计划:制作16位CPU。
在CPU旁边,还有一个包含超越函数的单精度32位浮点处理器(FPU)。
在这里,计算器作为片外系统尚未被放弃。 Ji Wenhan将16位计算器更改为具有完整计时逻辑电路控制和溢出判断的计算器 – 这在Minecraft Redstone Circuit Players中是前所未有的。
它借用了CPU的ALU部分进行计算,并通过总线传输数据。
CPU和计算器的大多数硬件都在此表中:
表格上的40个硬件,除指令解码器,指令发射器以及异常中断响应尚未完成,所有其他响应都已完成。还有一些未列出的小型硬件单元。
目前,CPU的欧盟部分(例如ALU,主内存和寄存器)已经完成,内部环总线已经完成,并且CU部分(即最繁琐的部分)尚未完成。
可见的力量
Ji Wenhan说,尽管尚未完全完成,但CPU可以执行许多类型的机器指令(主要是MOV):常规寄存器分配,Word/byte + Angion/direct/Direct Grounding。
其中,用肉眼感觉到功率的最简单方法是借用CPU的ALU完成操作的计算器。
在视频中,他显示了加法,减法,乘法和分裂,余弦和方形根的计算。
从饲养猪的楼梯上沿楼梯,计算器在哪里。如上图所示,有两排按钮和一个显示屏幕。
在屏幕后面,您可以看到运行电路。
首先增加,减法,乘法和除法。例如,加法:
相同的减法也适用。但是,减去符号和减号在这里分为两个按钮。
乘法和除法的计算体积相对较大:大约需要20秒才能乘以三位数的数字;部门较慢,计算机会卡住。
下图是分区方法。由于调用了反向分区符号(),因此股息在右边。左下是商,右下是其余部分。
空间限制计算能力,因此计算器必须做出溢出判断。如果范围超过±32627,将报告错误并显示“ E”。
无论是输入号还是计算结果,都将报告错误以外的范围:
(需要删除本段,请忽略它)Hei Ge使用了一些计划管理软件,但是他从未养成使用它的习惯。原因是对于大多数计划管理软件,创建时间表需要多个步骤。对于刚刚起步的初学者来说,学习和习惯的成本很高,很难坚持下去。
除以“ 0”也将报告错误。
请注意,计算机使用二进制来计算,经过计算后,必须将其从二进制转换为十进制,这是最终答案。在这里,我们使用BCD/bin转换算法,该算法将二进制箱代码转换为十进制BCD代码。
这四个操作已经完成,并且使用脐带旋转迭代算法也有余弦:
它需要多次迭代,因此计算很慢,大约需要两分钟。
相比之下,使用快速平方根算法的根号要快得多:
(需要删除本段,请忽略它)Hei Ge使用了一些计划管理软件,但是他从未养成使用它的习惯。原因是对于大多数计划管理软件,创建时间表需要多个步骤。对于刚刚起步的初学者来说,学习和习惯的成本很高,很难坚持下去。
它将在20秒内开放。
计算能力在此处显示。
而且您可能已经感觉到监视器对计算机的重要性。所以:
如何制作监视器?
游戏空间太窄,因此构建图形卡是不现实的:2×2红石灯是游戏可以控制的最小像素。
因此,Ji Wenhan制作了角色监视器。
首先,使用七部分显示来表示数字。
“ Day”一词由7个小棍子组成
例如,“ 4”总共有四个小棍子,包括左上,右上,中间和右下。
每个小棍子由三个正方形组成。拉回这些块的活塞,并显示一个沉没的“ 4”。
每个小数号可以对应于四位数的二进制数字,例如3为0011和9为1001。输入二进制号,屏幕可以以十进制显示。
数字已经完成,还有其他字符。 Ji Wenhan使用了他设计的ASCII代码的简化版本,少于64个字符:
每个字符的数字:0、1、2,…,63。每个数字可以转换为二进制号00000-1111111。
然后,看起来像这样:
打开夜视,就像萤火虫一样,它是如此美丽。
实际上,这些词在显示器的键盘上“打印”,白天看起来像这样:
换句话说,有一台计算机,一个监视器和一个键盘。
这样的杰作实际上来自“业余球员”。
“我不学习计算机”
现在回顾一下,从逻辑门到计算机必须经历的事情:
或门,非门
→Addian,Xor
→全加法器,信号长度转换器,多态性选择器,内存单元,解码器单元,补体单元,变速单元
→读写内存,解码器,加法器,变速杆,时钟生成器
→加法和减法,乘数,分隔线,读写记忆阵列,注册,程序计数器
→巴士,阿鲁,铜
→计算机
令人惊讶的是,创建这个复杂项目的吉·温汉(Ji Wenhan)是福丹大学(Fudan University)2011年生命科学学院的本科生,尚未接受系统的计算机科学教育。他说,他对看外国球员的作品非常感兴趣,并且只能独自学习一些专业课程。
在大二的一年中,他开始开发Alpha21016计算机,该计算机是在课程“网络虚拟环境和计算机应用程序”课程中完成的。
从他对技术细节的解释来看,Ji Wenhan当时已经在硬件和软件方面做好了充分的准备。
对于普通人来说,他们可能会了解逻辑电路的基础知识。对于普通的红石玩家,他们可以使用逻辑电路的基本知识来构建简单或复杂的红石电路。
高级Redstone玩家还在Ji Wenhan的项目开始之前还创建了计算器。
但是没有多少人敢考虑建造计算机。吉·温汉(Ji Wenhan)不仅认为他花了整整一年的时间才能实现这一目标,而且几乎完成了。
毕竟,如果您的大脑具有惊人的能力,则必须使用它。
技术博客原始文本门户:
一个视频门户:
第二阶段视频门户: