您好、欢迎来到现金彩票网!
当前位置:满堂彩 > 浮点计算机 >

在《我的世界》里从零打造一台计算机有多难?复旦本科生大神花费

发布时间:2019-05-29 02:22 来源:未知 编辑:admin

  单枪匹马造出一个CPU乃至完整的电脑需要多长时间?有位大牛在《我的世界》游戏里用实际行动回答了这个问题:可能要花费一年多。

  这并不是一篇游戏攻略,而是来自复旦大学的季文瀚,写的一篇课程论文。他在大二时就有了大胆的设想,经过一年的精心营造,建起了一个计算机雏形,取名Alpha21016。

  虽然它不能与现实中的计算机相比,只能实现一些简单的功能,但这台计算机体积惊人,光看它复杂的结构就已经能感受工程量的巨大。

  季文瀚计算机使用的是哈佛结构,而非更常见的冯·诺依曼结构。程序储存器和数据储存器分开放置。程序储存器1kb,数据储存器0.5kb。

  它可以实现各种函数运算:加减乘除、三角函数还有矩阵运算。它包含一个16bit的CPU和一个32bit的浮点运算单元 (FPU) 。

  从硬件上看,它是个超大规模集成电路,逻辑门总数大概在5万-10万门之间。光是存储器堆叠起来就有8层。

  要造出这样一台计算机,数字电路、微机原理、汇编语言、编译原理都不能少。想想你挂过哪几门课,从学会到熟练运用就更难了。

  我们都知道计算机的基础是数字电路,数字电路的基础是“门”,季文瀚用游戏里基本的“红石电路”搭建出了逻辑门。

  从逻辑门出发,再搭建出组合电路、时序电路、触发器,有了这些就能组成CPU的一些基本单元,最终造出整个计算机。

  现实世界中,晶体管是数字电路的基础;在《我的世界》中,红石电路是构成复杂电路的基本单元。

  红石电路玩家,只用火把和方块,就能造出基本的逻辑门:或门和非门。或门和非门的组合可以造出与门、异或门等任意逻辑门。

  但仅仅知道怎么制造逻辑门离造出计算机还很远,可能大致相当于造出汉字笔画到写出《红楼梦》的距离。

  其中每一个方框都代表一个或若干个硬件单元,小一点的大约一两百个门电路,大的有几千个门电路。这个密密麻麻的部分,也只是架构的右半部分而已:

  知道了CPU的基本架构,再按照架构图分别造出每个部分,比如CPU的重要模块“算数逻辑单元”(ALU)和“指令寄存器”(IR),工程量很大。

  算数逻辑单元还能进一步拆解,它的加法器由数个全加器组成,上面基本的逻辑门可以组成加法器中最基本的全加器 (下图) 。

  同时,《我的世界》还提供的基于活塞机械的断路,用信号控制电路的通断,也就是继电器。利用继电器和逻辑门的组合可以造出存储器。

  但做到一半,他就觉得可以实现更复杂的东西,于是想改成单片机:这是具有“图灵完备性”,可以执行一切计算机程序的简单计算机。

  CPU旁边,还有一个包含超越函数的单精度32 bit浮点处理器 (FPU) 。

  这里,计算器作为片外系统,并没有被抛弃。季文翰把16 bit计算器,改成了完全时序逻辑电路控制、且有溢出判断的计算器——这在Minecraft红石电路玩家里,已是前所未有。

  表上的40个硬件,除了指令译码器、指令发射端、异常中断响应没有做完,其他都做好了。还有一些小的硬件单元没有列出来。

  目前,CPU的ALU、主储存器、和寄存器等EU部分已经完工,内部环状总线已竣工,CU部分,也就是最繁琐的部分,还没有完工。

  季文翰说,虽然还没完全竣工,但CPU已经可以执行许多种机器指令 (以MOV为主) :通用寄存器赋值,按字/字节+立即数/间接/直接寻址。

  其中,最容易用肉眼感受到威力的,还是借用CPU的ALU完成运算的计算器。

  从养着小猪的地方走楼梯下来,就是计算器的所在地了。这里有两排按钮,还有显示屏,如上图。

  乘法和除法的运算量比较大:三位数乘三位数,大概需要20秒;除法更慢一些,电脑还会卡。

  下图就是除法,因为打了反除号 (\) ,所以被除数在右边。左下是商,右下是余数。

  空间限制了算力,所以计算器要有溢出判断,超过±32627的范围就会报错,显示“E”。

  注意,计算机用二进制来计算,算好之后还要从二进制转成十进制,才是最终的答案。这里用到了BCD/BIN转换算法,把二进制BIN码,转成十进制BCD码。

  游戏空间太狭窄,造显卡是不现实的:2×2个红石灯,就是游戏能控制的最小像素了。

  每根小棒又由三个方块组成。把这些方块的活塞往回抽,就显示出凹陷的“4”了。

  而每个十进制数,都可以对应二进制的四位数,比如3是0011,9是1001。输入二进制数,屏幕就能显示成十进制。

  数字搞定了,还有其他字符。季文翰用了自己设计的缩减版ASCII码,只有不到64个字符:

  给每个字符编个号:0,1,2,…,63。每个号码,都可以转成二进制数0。

  →全加器,信号长度转换器,多态选择器,储存器单元,译码器单元,求补码单元,移位器单元

  令人意外的是,造出这项复杂工程的季文瀚,是复旦大学2011级生命科学学院的本科生,没有受过系统地计算机科学专业教育。他说,看到国外玩家的作品很感兴趣,才自学了一些专业课。

  大二便启动了Alpha21016计算机的开发,作为《网络虚拟环境与计算机应用》这门课的项目来做的。

  从他对技术细节的解读来看,那时的季文翰,已经硬件和软件上拥有无比充分的准备。

  普通人的话,可能了解逻辑电路的基础。普通红石玩家的话,可以把逻辑电路的基础知识,用来搭建简单或复杂的红石电路。

  但制造一台计算机,并没有多少人敢想。季文翰不但想到,还用了一整年去实现,几近完成。

http://login4porn.com/fudianjisuanji/313.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有