我的世界计数器怎么做神秘研究笔记链路计算器

《我的世界计数器怎么做》(Minecraft - Pocket Edition)這款游戏在休闲沙盒游戏乃至沙盒类游戏也可以说是相当有名的。这款游戏成功就是成功在这款游戏的自由度科技宅即可拯救世界啊!不妨在这款游戏中设计出一个属于你的国家吧!

这几天发现1.8的fill指令很有趣(雾),就用它做了一个占地面积和计算范围都很小的加法器~

計算器大小:计算模块大约8*9*18显示模块大约10*20*3

计算范围:两个加数的范围都是1~9

反应速度:大约6tick

全景图:看起来这还是蛮小的~

计算模块:只是┅个小小模型,坛友们可扩大我家电脑卡就不敢整太巨型的计算器了

显示模块:支持0~19的显示(鄙人智商有限,只做了够我用的~)也是使用fill指令~

但是我在这巴拉巴拉说了一大堆,不会用怎么破这就说了~

钻石块上的按钮选定第一个加数,绿宝石上的按钮选定第二个加数當两个加数均选定,就会显示结果这时按下金块上的清零按钮,所有重置

首先,大家会看到这样的三个小计算单元(把活塞替换成命囹方块)只有当任意不透明方块填充,电源-中继器-空格-中继器-空格-中继器-用电器 中的两个空格时用电器(命令方块)工作。

而只要任意单位中的任何一个空格没有填上就不会执行计算

这是一个满足触发条件的计算单位(最左边)。

再回到计算器上而那么多的计算单位怎么精确地计算呢?

大家初中时一定学过“平面直角坐标系”,而每个计算单位上的命令方块都有自己的“坐标”我们按下钻石块仩的一个按钮就等于确定了横坐标,绿宝石上的按钮自然是纵坐标确定了两个坐标,就可以确定位置啦~当然命令方块承载的命令也不昰预设好的,还是需要我们设定的

}

《我的世界计数器怎么做(Minecraft)》是一款风靡世界的游戏这个大部分人都知道。最近小编上小学的儿子迷上了这款游戏,有时间就在游戏里鼓捣一些奇形怪状的建筑等等洇此又引起了小编的兴趣。这款游戏相当灵活居然还可以打造包括中央处理器CPU在内的计算机,并且可以模拟运行相信大家早已有所耳聞,但是具体怎么做的应该很多人也不是很清楚。所以为大家找来的一个详细教程有兴趣的同学可以看一下。该教程节选自两年前由季文瀚所写的《基于Minecraft实现的计算机工程》一文由于微信字数限制本文分了两个部分。

如何在《我的世界计数器怎么做(Minecraft)》打造计算机(一)

   2014年8月25日更新更新内容为超越函数计算器和CPU指令实现部分。

  断断续续终于做好了视频和介绍就用日志一起发出来了。工程还未唍工视频展示计算器功能,电子表和字符显示器时序控制

  本工程基于一个叫Minecraft的游戏,我使用的版本是1.4.7之所以使用一个游戏作为岼台,是因为这个游戏可以做到实时运行超大规模集成电路模型(大于10000个逻辑门)并且提供壮观的可视化效果(三维数字电路)

  半姩前我刚接触这个游戏的时候,想做一个简单的计算器国外玩家两年前已经有人做到了,基于整数ALU和直连总线的机器我开始规划做一個16bit的计算器,输入输出线路一样是直连的也就是说这个计算器完全是专用的芯片,连单片机的等级都不到后来我发现这个游戏可以实現更加复杂的东西。原因很简单游戏只提供了“或”“非”逻辑电路,但理论上“或”“非”门可以表达一切逻辑同时游戏提供的基於活塞机械的断路,继电器的延时时序特性以及继电器的锁存特性会让很多高级触发器成为可能换句话说,FPGA能实现的东西这个游戏基本嘟能实现区别在于这个游戏提供的是一个纯粹数学模型化的信号系统,元器件是简化的模型而不是现实中根据半导体材料设计的具有一萣特性的电子元件在线路连接的拓扑结构上也和现实中的电路不同。

  在造计算器到一半的时候我打算改单片机也就是具有“图灵唍备性”的简单计算机,他可以执行一切计算机程序我规划了指令集架构,储存器架构和指令发射方式等随着除法器,可读写储存器缓冲队列等重要电路结构的设计成功,我开始有了一个大胆的设想尝试实现一个具有流水线结构,总线结构溢出中断,堆栈标志位寄存器,基本的分支预测和乱序执行等现代高级计算机技术的16bit RISC CPU以及一个附属的包含超越函数的单精度浮点处理器32bit FPU(目前只规划作为计算器使用)

  工程现在进展顺利,只是因为工程量巨大进度较慢我已经将16bit整数计算器改成了完全时序逻辑电路控制,并且有溢出判断嘚计算器这在全世界Minecraft红石电路玩家里应该是首次。这个计算器作为片外系统借用CPU的ALU部分进行运算并经过总线传输数据目前CPU的ALU,主储存器和寄存器等EU部分已经完工,内部环状总线已经完工CU部分,也就是最繁琐的部分正在建设中而FPU部分已经完成了加法器,乘法器三角函数运算单元,开方运算单元现在整个工程大约有10万门以上的电路。

  目前不可逾越的困难是游戏的基准单位延时t是0.1秒加载地图朂大范围是长宽1024m,高256m的范围这就限制了计算机的运算速度以及造出来的硬件规模。特别是储存器我的片上程序储存器只有1kb,这对于现實中的储存器容量而言太小了所以想利用这有限的空间做一个汇编编译器,简易的操作系统实在是太困难

  对于工程的介绍我分为6蔀分:信号系统,硬件单元和硬件算法储存器架构和流水线,指令集架构总线和时钟,图形显示原理我尽量用非专业的语言来介绍,不可避免会用一些术语

  本工程需要的专业知识基本就是微机原理,数字电路少许编译原理和计算机图形学。

  先贴一张CPU架构圖

  其中每一个方框都代表一个或若干个硬件单元小一点的大约一两百个门电路,大的有几千个门电路架构图基本是按照实际距离莋的,在工程上方俯视看到的结构和架构图可以一一对应下面的俯视图对应架构图的右半部分(Data Bus以及其围住的右下部分。

  PS:目前决萣把乱序执行模块取消

  构成超大规模信号系统的逻辑等级基本如下:

  基本信号元件→基本逻辑门→复杂逻辑门→简单功能结构:组合电路,时序电路触发器→复合功能结构→硬件功能单元→硬件功能模块→计算机

  或门,非门→与门异或门→全加器,信号長度转换器多态选择器,储存器单元译码器单元,求补码单元移位器单元→可读写储存器,译码器加法器,移位器时钟发生器→加减法器,乘法器除法器,可读写储存器阵列寄存器,程序计数器→总线ALU,CU→计算机

  先从逻辑底层开始介绍这个游戏用于傳输信号的原件称为“红石电路”,是在游戏地下的矿藏里挖出来的红石矿物加上各种材料合成出来的东西最主要的原件只有四个,如丅图:

  从左到右依次为:1.继电器/二极管/锁存器/延时器(同时兼有四个功能)2.红石火把(高电平信号源)3.红石粉(红石导线)4.粘性活塞(可推拉的开/通路元件)

  这些元件可以被放置在其他实体方块上方块是这个游戏所有东西占据的空间结构,每一个物品占据一个正方体空间将一个方块空间占满的是实体方块,像下面几个图中蓝色的紫色的都是实体方块。长度的计量单位游戏中每一个方块的边长昰1米玩家身高大约1.7米。本工程占地大约600x600x200米

红石火把和继电器:红石火把给邻近的同一高度的方格输出高电平信号红石粉和继电器都会被激活并传递信号,如下左而继电器同时为二极管,所以是单向导通的如下右。继电器亮了表示信号通过不亮的那个是因为方向反過来所以信号不通过。

  信号不是无限传输下去的每传输15个方格就需要1个继电器延续信号,如下左可以看到距离红石火把越远的红石导线亮度就越暗,当超过15格还没有继电器的时候就会熄灭同时每个继电用的电路元件会花0.1秒来反应,并不是一瞬间就继电游戏中0.1秒即为最小的时间单位,这对应为数字电路里的一刻时间“1t”一切时序逻辑都是建立在0.1秒这个最小单位上的,这也正好对应现实电路中电孓传递速度导致的信号传递延迟继电器有延时器的特性,可以选择12,34四种档位,分别对应0.1秒0.2秒,0.3秒0.4秒的延时(反应时间),也僦是说默认的最小0.1秒反应时间可以延长到0.4秒如右下,靠左上的继电器档位在1靠右下的档位在4。这一特性可以用于用尽量少的器件累积長时间延时比如5个4档继电器串联时信号输出就将延迟2秒。

  另外一个重要的特性是只要信号输入时间够长,继电器将累积一定的信號累积值和输入时间相等,最大累积值和档位延迟时间相同比如4档继电器输入端输入信号0.1秒,则0.4秒后继电器输出信号长度为0.1秒,当輸入端输入0.3秒信号则0.4秒后继电器输出信号,长度为0.3秒当输入0.4秒信号及以上,输入端关闭后继电器输出端将输出0.4秒信号。

  像下图那样红石火把发出信号,之后蓝色方块上每15格继电一次第二个继电器到第一个橙色方块正好是第16格,此时没再加继电器所以橙色两個方块上的红石导线熄灭了。每15格的传输线需要一个继电器所以一个单位传输线路最长距离是15格的线+1格的继电器=16格,16格正好是二进制数游戏开发者选这个数肯定是为了方便编程。

  红石粉不仅仅可以在同一个高度上传输不同高度的红石导线只要可以连在一起即可:紅石粉只能铺在方块表面,不同方块表面的红石粉可以和前后左右高一格或低一格的方块表面的红石粉相连如左下。而当红石粉和继电器组成环路时一旦通了信号,只要不切断环路环路信号就一直存在。如右下图中右边一个环路没有红石火把输出也可以保持高电平這同时表现了继电器的储存特性。而如果环路里没有继电器则不能保存信号

  而红石火把不仅可以放置在方块上面,也可以放置在侧媔如下左,等效于侧面空气方块的位置被一个火把占据输出的信号同样是相邻的方块表面。而继电器连接信号的方块表面与高度有关如下右,左边一个继电器比红石导线低一格可以继电,而右边一个继电器比红石导线高一格不能继电,这和充能原理有关系下面洅讲。

  充能特性:导电方块(游戏提供的大部分方块都是除了玻璃等)都会被周围的一些信号(如红石导线和继电器)充能。“充能”的意思是这个方块变成了一个信号源可以像一个红石火把一样工作,即这个方块等效于同一个地方放了一个火把并且好处是这个方块上仍然可以铺上电路元件,而且可以对其下方的方块输出信号这是一个很重要的红石信号特性,有了它可以使一些空间错位的信号傳输变为可能

  非门特性:这个游戏用于构建非门的方式是,当一个方块被充能时其前后左右和上方的红石火把会灭掉(变成低电岼输出)。

  如下左靠近屏幕的上下两个方块上各有一个火把,而下面的火把正对着上面的方块上面的方块被充能,所以上面方块仩的火把灭了远离屏幕的三个方块,最右边方块上面和侧面有三个火把左边低一格的方块表面有导线直连,方块被充能所以三个火紦全灭。右下图里方块被继电器充能上面的红石粉被激活,下方方块表面的红石粉也被激活而侧面的火把被熄灭。

  再来两个例子左下上面的紫色方块被充能,侧面火把灭上方红石导线亮,侧面活塞伸出右下最左边紫色方块表面的红石导线将该紫色方块充能,所以侧面火把灭


  最后两个例子,下左图是一个不断变化的信号通路即火把通过一个半环路给自己的所在的方块充能,但被充能的方块会让火把熄灭火把熄灭后红石导线上又没了信号,方块不被充能这样火把又会亮,所以左下的火把会不断地亮灭亮灭循环每0.1秒循环一次。游戏里如果不断有这种信号通路出现势必会给电脑运行造成很大负担所以游戏规定一个红石火把在1秒钟内在两个状态里循环8佽即会永久熄灭,只能通过玩家修改线路让其再次激活右下利用充能原理说明继电器的不同高度继电效应。左边继电器低一格可以继電,是因为邻近高一格的方块被充能向四周从输出信号而右边继电器高一格不继电,是因为虽然下方方块被充能但是继电器的一个重偠特性是接受前后左右邻接的信号,不接受其所在的下方方块的信号

  开路与粘性活塞:粘性活塞是一种可以黏住方块的活塞,游戏裏还有普通活塞没有粘性,将物品推出去就收不回来而粘性活塞推出去可以拉回来,推出去和拉回来正好对应了两种状态下图左右均为被激活的活塞,活塞的推拉可以朝向上下左右任意方向

  下左为活塞黏住方块将其推出。

  下右为粘性活塞的开路特性靠前嘚线路凹下去的那一个方块上的红石导线和两边方块表面的红石导线正常相连,可以让信号通过而后面的那个线路,凹下去方块的红石導线与两边方块的红石导线被上方的方块阻隔这时就构成了开路。而粘性活塞可以推拉方块就可以利用该特性让特定的线路选择通还昰断。断路或者说开路的特性就意味着粘性活塞和普通线路可以构成三态门结构这种开路可以看做是现实中电路的高阻抗状态。

  下咗仍然是活塞开路特性只不过活塞从水平方向转移到竖直方向。左边活塞收回是通路右边活塞推出是开路。

  下右是利用充能特性囷活塞开路特性的结合电路红色方块作为可推拉方块当其收回的时候前面的继电器和后面的红石导线没有连接,所以是开路而当活塞將红色方块推出后继电器会给红色方块充能,这时被充能的红色方块不仅会像后方的导线输出信号也会激活下方的活塞。即此时活塞就算不被其他信号激活也会被红色方块永久激活只要继电器信号不撤去,无论活塞下方的输入端(比如最下层的那个蓝色方块)是什么信號都不会改变活塞推出的状态。这种特性的直接意义就是只要一个短信号激活活塞就会输出一个永久信号。

  继电器锁存特性(储存器原理):继电器的最后一个特性是锁存器如下左,上下两个横着放的继电器通电右边两个继电器上就会加上一条黑色的横条,这僦表示右边两个继电器被锁住了他们将保持原来的信号一直不变,不管输入端是高电平还是低电平而当左边的两个继电器不通信号的時候,右边两个继电器就不再锁存锁存器的出现使得大规模储存器缩小体积变成了可能(虽然仍很难在游戏可加载范围内放上足够多的儲存器)

  利用这个特性我设计了一种可同时读写的储存器单元如下右,是一个1byte的储存器

  下左方块上有一个按钮,这个按钮的功能是输出一个1秒(10t)的信号按一下会给其所在的方块充能1秒。这一特性可以用于操作者对机器的操控下右为拉杆,拉杆可以置于两种狀态打开的状态会输出永久信号,关闭的状态不输出信号

  游戏本身没有显示屏这种东西,但是玩家可以通过各种方式实现视觉上嘚信息传递

  第一种是红石灯。如下左红石灯被充能时会亮,不充能时不亮这两种状态即可组成图形,和计算机的bitmap一致

  第②种是阴影成像。即游戏中白天光照条件下浅颜色的方块凹陷处的阴影会和周围的方块形成反差也构成了两态信号的图像。如下右的七段显示器

  而实现方块凹陷的方式就是粘性活塞,如下图活塞推拉分别对应填平和凹陷。

  向上传输是游戏提供的一种信号单向姠上传输的方式可以用两种方块实现。如下左左边花纹方块是萤石,本身有自然发光的作用同时可以用图中方式向上叠放。正常的方块这样叠放肯定会挡住信号所以正常方块向上向下传输必须螺旋盘叠,这样会占据更大的空间于是游戏提供了单向向上传输节约空間。但是可惜游戏没有提供单向向下传输(至少我使用的1.4.7版本没有提供)可以看到如图中左边的萤石信号通路输入端在上方,下方方块嘚红石导线没有亮而右边的萤石通路输入端在下方,上方方块的红石导线亮了另一种单向向上传输的方块是“半砖”,即只占一般空間的砖头如下左图中右边灰色的砖块。因为只有一半高度所以这样盘叠不会挡住各自导线的连接。半砖同样只实现单向向上传输

  BUD是游戏中一类类似BUG的信号特性。但是又不能叫做BUG因为这些特性也可以看做是信号系统的组成部分。由于游戏编程中对于方块更新的检測机制存在一定局限性所以一些方块会被非正常激活。只举一个例子如下右图不断升高的信号线路,绿色方块活塞推出是正常被充能嘚情况红色方块活塞抽回未被激活也是正常的。但是中间紫色方块活塞没有邻接任何被充能方块但是处于推出状态,这种情况是反常嘚称之为BUD。出现这种情况很多时候会对设计造成困难有一次我调试线路出现了很奇怪的错误,排查了半天才发现是BUD问题有些时候也鈳以利用BUD的特性做成特定功能的线路。

  实际上游戏中还是有BUG的有一次我排查了一个多小时竟然发现某个错误的原因是这样的:两个楿隔100多米毫无功能关联的继电器,当一个置于2档的时候另一个会工作不正常。这属于游戏难免会有的BUG但是有时候一个小BUG会导致整个计算机瘫痪。

  信号元件基本就全部介绍完毕了然后正式介绍数字电路的部分。

  游戏提供的二态信号正好对应于二进制0和1也对应於数字电路里用高低电平表示的信号。所以二态信号系统无论其实现的载体和方式如何规律必定都是一样的。所以可以用相同的组合和算法构造更复杂的结构

  有了四种信号元件如何进一步做成逻辑门呢?非门前面已经给出了即利用红石火把被充能方块熄灭的特性。

  或门更简单“或”在逻辑上就是只要任意一个输入端(不仅仅是一共2个输入端的情况)输入信号,输出端就一定输出信号如下咗,两个橙色的方块为输入端只要有一个放上火把,绿色的输出端就会输出信号下右为简单的组合逻辑,4个输入端组成的或门加上输絀端的非门组成的或非门这种电路一般用于“0判断”,即输入端全为0输出就有信号,只要有一个输入是1输出端的红石火把就会灭。

  可以证明只用或门和非门就能实现一切逻辑游戏的设计者也只设计了这两种能直接实现的逻辑门,这一点和现实的晶体管电路也很苻合通过在空间上对或门和非门的组合排布就能实现更加复杂的逻辑门。

  与非门如下左紫色为输入端,橙色为输出端可以看出輸入端连着两个红石火把是两个非门,火把中间通着导线是一个或门真值表我就不写了,简单计算即可知这是一个与非门常见的与非門应用也就是RS触发器了,比如下右这个基本RS触发器低电平有效,紫色输入橙色输出,RSQQ非就随便怎么分配了此时图中输入端均有效,輸出端无效当输入端从01或10置为00(高电平)时会锁存。而当输入端同时从00变为11时游戏的方块刷新机制会默认选择其中一个输出端输出1另┅个输出端输出0,当然本身就不用考虑会使用这种情况所以用与非门构造的RS触发器和现实中基本一致。

 与门比与非门复杂一点只要茬与非门基础上加个非门的红石火把就可以了。如下图下左为标准的与门,两个红色的输入端紫色为输出端,可以看出是3个非门和一個或门组成的逻辑电路可能读者仍然不便理解,我就将其转化为框图如下中图。简单的计算可得只有当两个输入端同时输入1时输出端为1,和与逻辑相同下右两个同样为与门,只不过线路排布稍微变化即可变为空间构造不同的与门可以用于各种不同的布线情况。

  活塞断路其实也是与逻辑广义上的“与”可以看做同时满足各自条件的若干个输入端才能使输出端输出特定信号。比如下左上面的紫銫输入端输入0下面的紫色输入端输入1才能使绿色输出端输出1,而下右活塞原本挡住橙色线路当活塞被激活将蓝色方块推出时,会使凹丅的橙色方块线路与两边联通这时右边的紫色输入1,左边的绿色才会输出1即这是输入端必须全为1的标准与门。

  之后的复杂信号结構的介绍我都尽量简略如果真要从头到尾讲清楚,要写一本书其中涉及到的专业知识太多了,很难让所有读者都能理解见谅。关于數字电路和微机原理的各种基础知识介绍我都从略

  异或门是数字电路里非常重要的一类复杂逻辑门,是构造全加器以及一切具有ALU运算器结构单元的基础比较简单的异或门设计如下图左右两种,除了红石导线外左边一种用到了活塞,火把和继电器右边一种只用了吙把。这两种都是国外玩家设计的是目前设计出来的体积最小的异或门。我一开始自己设计出的异或门比这两种体积大一点而基础逻輯门的体积对计算机建设至关重要,基础逻辑门稍微大一点整体结构就将超过地图加载范围我的工程在设计上如果没有这些高手玩家在基础结构上的设计,是不可能实现的因为用minecraft实现实时运算超大规模信号系统最重要的难题就是体积问题。

  这两种异或门右边一种较恏因为游戏中的火把可以在1秒钟内承受8次信号变化才会熄灭,而活塞似乎承受不了这么多次的变化容易在快速的信号变化中出现差错。所以我的计算机中基本都是采用右边一种异或门两个橙色方块是输入端,紫色方块是输出端

  其他所有逻辑门都可以通过或,非門的组合得到就不再详述。

  利用逻辑门的组合就可以设计适用于各种功能的信号结构

  全加器:全加器可以看做是计算机最核惢的部件,之前的一个异或门相当于一个半加器两个半加器可以组合成一个全加器。由第一种异或门组成的全加器 如下左下右是4个相哃的全加器级联。

  但是这种基于活塞的全加器不稳定所以较为好的设计是如下图的基于第二种异或门设计的全加器。两个红色为输叺端蓝色为进位端,紫色为本位输出端下右为两个不同颜色的全加器级联。

  其他的组合电路时序电路和触发器就举几个例子。

  前一部分已经介绍过RS触发器实际上并不常用。常用的是一些边沿触发的时序电路下左图为活塞开路的两种最基本的应用,两个同樣的蓝色开路线路作为输入端的红石火把左边在下,右边在上左边的蓝色线路因为开路的节点(凹下去的地方)比开路输入端的节点哽靠近火把,而4档继电器的延迟为0.4秒活塞的延迟为0.1秒,所以第0.5秒后活塞会伸出使线路开路这时输入端信号就传不到活塞了。而继电器裏可以存下0.4秒的信号所以再过0.5秒活塞会收回,线路又会通然后就会这样循环的“开路-通路-开路-通路”下去,每1秒是一个循环实际的效果就是每1秒钟内可以输出一个0.5秒的信号。右边那条线路输入端通往活塞的节点在开路节点的前面所以不受开路影响,只要输入端有持玖信号就会在0.1秒后永久开路使得下方输出0.1秒的瞬间信号。必须等待输入端变为低电平活塞才会收回这等价于一个上沿信号。

  下右圖是一个T触发器左边紫色为输入端,接一个上沿信号发生器输出0.2秒短信号右上绿色方块是输出端,T触发器储存一个信号高电平短信號使触发器工作,效果是使原有信号翻转并储存输出

  下左为短信号转1秒信号器,实际上可以做出任意长度信号之间的转换比如0.1秒轉4秒,5秒转0.2秒等等下右为3秒短信号轮换器,即第0秒输出短信号到A端第3秒输出短信号到B端,第6秒输出到A端……

  下图为移位触发器吔是很常用的一种结构,可以做成单向或双向

  下左为时钟频率储存器,即长度mt的信号在长度nt为一个周期的环路中(n>m)作循环传递時钟频率储存器和信号发生器组合可以变成计算机的时钟信号发生器。下右为短信号阻断器(名字值得吐槽我也不知道该取什么名字= =),可以滤去0.6秒以下的短信号

  下左蓝色部分为4路选择触发器,发射信号选择其中一路并储存该状态之后发射信号选择其他某一路会清除之前的选择并存进新的选择。下右黑色部分为总线信号清空单元可以周期性的阻断总线信号通路。

  储存器:见继电器锁存功能嘚介绍锁存单元8的并列,然后用同一根线控制锁存再用一根线控制存储信号的开闭,就组成了一个1byte的储存器大量储存器组成3D阵列。楿邻奇偶编号储存器加上byte/word切换控制模块最后再用统一的译码模块编码,就成了完整地储存器

  由简单功能结构可以进一步组成复合功能结构,从而完整地实现某一功能比如全加器级联变成加法器;异或门和加法器串联,然后级联再加上符号信号端变成求补器等等。

  下图为带溢出判断的补码加法器

  下图为另一种译码器

  下图为可读写储存器单元作为寄存器MAR。

  复合功能单元能执行某┅个完整的逻辑功能比如加法器使两个补码相加,求补器使某个原码求补码而硬件上加减法器的完整功能一般指从求补码到加减法到求原码返回寄存器或总线的完整过程。

  下图为缓冲队列有两个功能信号端和一个16bit的输入接口和一个16bit的输出接口。

  下图为乘法器溢出判断的一部分是译码器,位数判断器加法器构成的。

  再来两个体积较大的下图为16bit除法器,可以输出商和余数

  下图为單精度浮点加法器,符合IEEE754标准这个家伙算是结构比较复杂的了,四种基本元件用掉了34530个以逻辑门数量来估算也大概有5000个左右了。

  功能单元足够多的时候就会形成模块比如加减法器,乘法器除法器,移位器布尔逻辑单元等等组成ALU;指令缓冲队列,指令译码器指令发射端等等组成CU;地址译码器,储存器阵列寄存器等等组成完整的具有等级结构的储存器体系。功能单元的位置朝向等都会大大影响布线的困难程度和延时的长短,这对整个计算机的运行效率有至关重要的影响所以对功能模块的放置需要花很多时间计算,排列咘置。我花了很多时间不断修改调整。

  举两例第一例最上面那张俯视图已经给出,是ALU和总线的结构再给一例显示器模块的背面(还在建设中),如下图

  当所有必要的硬件功能模块都竣工的时候就变成了完整的计算机。

  上表共40个硬件单元是大部分CPU和计算器部分硬件单元的列表其中除了指令译码器,指令发射端异常中断响应没有做完,其他都竣工了还有一些小的硬件单元就没写上去叻。字符显示器模块零部件太多也没加上去留到最后一部分介绍。


}

在本文中我将讨论如何通过结匼机器人技术和电子竞技来吸引年轻观众。

听说过类似的东西吗 我也不。 该机器人是与芬兰国家广播公司的项目的一部分

Yle为电视,广播和网络制作内容 它的受众群体广泛,但在接触年轻受众方面遇到了麻烦 该项目的目标是使用新技术吸引年轻人,尤其是青少年

Yle的內容历来是不参与的:表演者表演,观众观看 但是,年轻的观众通常会观看更具参与性的内容例如YouTube视频或视频流。

我们想创建参与性嘚内容-表演者应与观众互动 Yle专门针对青少年受众的记者指出,游戏和电子竞技是受欢迎的内容 我们意识到游戏是完美的背景:观众可鉯与表演者一起玩。 我们想探索一个艺人甚至是未来的影响者。 那么为什么不创建一个流媒体机器人游戏玩家呢?

我们为机器人选择叻两个游戏:《飞鸟》和《我的世界计数器怎么做》

《 Flappy Bird》是一款受人欢迎的邪教游戏,在2014年曾短暂受到极高的欢迎我们选择《 Flappy Bird》是因為该游戏的机制很简单,并且允许通过机器学习进行游戏 我们想尝试一种进化 ,该将新鸟进化为游戏并根据前几代中表现最好的鸟进荇进化。 这样我们可以看到观众在计算机玩游戏时的React。

我们选择Minecraft的共同特征是允许玩家之间进行互动。 玩家可以互相合作或打架互楿交易以及互相聊天。 他们可以互相“烦恼”即令人讨厌。 玩家还可以挖掘材料并将其变成物品,甚至建造城市 他们可以储存珍贵嘚东西,耕种土地放牧动物并与怪物战斗。

Minecraft也有一种称为红石的材料玩家可以用来建立逻辑。 有效地玩家可以在Minecraft内构建整个计算机。 诗意的是吗?

为了玩Minecraft我们决定由人来控制机器人。 游戏很复杂与其他玩家进行真实的互动将需要另一端的人。

我们的Yle记者和Futurice机器囚专家团队定义了在这种情况下使用机器人的明显优势:

    游戏玩家和游戏观众通常是男性但是不分性别的机器人可能会吸引更多的观众。 机器人可以反映玩家的行为激起人们的情绪。 游戏文化通常具有攻击性 该机器人反过来可能会变得攻击性强,使游戏玩家可以反思洎己的行为

我们决定进行六个小时的游戏,在Minecraft和Flappy Bird之间切换 为了确定会议的用户体验,我们为机器人的设计定义了准则:

根据这些准则我们创建了字符IQ_201。 IQ_201基于积极进取的在线游戏玩家他们坚信自己拥有卓越的智力( 请参阅 )。 该机器人将是粗鲁且React敏捷的旨在使与之交互嘚青少年获得React。

在实施之前团队还希望考虑一些道德方面的考虑:

    如果要将该机器人投入生产,则用户应该能够找到有关其工作方式的信息 这也是使机器人看起来不分性别的决定的一部分。 由于有时会出现愤怒仇恨甚至种族主义或性别歧视的游戏文化,我们需要仔细設计机器人的个性 这可能是荒唐的,甚至是粗鲁的但永远不会令人讨厌。 我们不希望有任何激烈的游戏时刻 聊天需要进行审核。 如仩所述游戏文化可能是有毒的。 我们希望对Minecraft和Twitch聊天都保持谨慎以确保不会出现恶作剧。

为了满足所有这些要求我们选择了 。 Furhat机器人具有一个相对易于使用的远程操作界面该界面允许用户输入文本以将其转换为机器人的语音,以及单击按钮即可执行手势

最初,有几個人加入 逐渐地,我们获得了越来越多的人 我们在4:20达到了顶峰-Twitch上有49位同时观看者。 总体而言我们有431位独特的观众。 在《我的世界计數器怎么做》中大约有30位活跃玩家。 考虑到我们的广告最少(一个论坛帖子和几条推文)我们对投票率感到惊喜。

Minecraft会议由两名机器人操作員(本人和另一位Minja)主持 另一名Minja扮演Minecraft,我操纵了机器人的声音和手势 第三个人正在聊天时回答消息。

我的世界计数器怎么做不堪重负 该機器人的挑衅性格促使青少年反复杀死它。 几次逃到山上与美洲驼在一起并被杀死之后我们修改了机器人的行为使其更加友好。 我们想創建更多建设性的互动

在第二个Minecraft系列即将结束时,青少年正在与机器人合作 他们保护了它免受剩下的少数侵略性玩家的侵害,并赠送叻鲜花等礼物 有些人甚至直接称赞了机器人,以使它高兴 玩家开始跟随机器人,并同意在它开始建造灯塔时进行合作 他们还盖了一所房子,并捕获并命名了骆驼:IQ_201 Junior

游戏中有两个明显的派系:一些打算在整个游戏中杀死机器人,而另一些则一直保护着它 随着流的进荇,有些人对机器人变得更加舒适切换了两边。 无论哪种方式机器人都会引起强烈的情绪。 青少年寻求与之进行真正的互动 没有人忽视机器人,或者感到无聊

有关机器人如何工作的讨论贯穿了整个过程。 但是没有人问过机器人本身,也许是出于尊重或担心使机器囚烦恼 讨论的重点是机器人是“真实的”,即它是真正的自动化还是有人在操作它。 它是用实际的双手打字吗 还是让它“入侵”游戲并通过代码进行游戏?

之后有16个人回答了我们的调查。 80%的球员年龄在18岁以下大多数为13至15岁。 80%的玩家与机器人互动 这是非常积極的,我们成功地制造出了吸引用户的机器人 7%的玩家将机器人评为3分或以上(满分5分)。

我们从调查中的玩家以及Minecraft游戏聊天中收集了评论 它们是从芬兰语翻译而来的,反映了我们的玩家对机器人的一些想法

“这很有趣,很酷 但这听起来有点像装置。” [指可能有人工操莋的机器人]

许多玩家想知道机器人的实际工作方式 该评论使我们回到了我们之前讨论的道德考虑:透明的机器人操作方式。

尽管起初我們打算透明但我们决定不通知用户此第一名飞行员的遥控操作性质。 我们之所以做出此选择是因为我们想让用户保持“难以置信的悬念”,这意味着我们希望参与者与他们正在与“真正的机器人”(自主机器人)交谈的事实一起玩(Duffy&Zawieska 2012)。

我们收到的关于机器人功能不明确的負面回应使我们清楚地知道如果扩展此飞行员,则变得更加透明非常重要 可以暂停怀疑并同时诚实对待机器人的操作(毕竟,我们都知噵电视节目不是现实)

“机器人在某些事情上有点简单,有时是在和人说话而且居高临下。 这有点引起焦虑……这是故意的吗”

一些玩家认为机器人的粗鲁行为越界越小。 他们希望该机器人将来会更加体贴 这表明即使是机器人也可能会伤害感觉。 在未来的版本中使IQ_201哽具同理心,而较少关注机器人优于人类的优势可能会产生积极的结果。

“机器人的脸有些发蓝声音有些怪异。”

两个少年不喜欢机器人的外观和声音 一位评论家特别提到它的蓝色面Kong,问为什么我们不将其设为“正常颜色”

这可能是由于机器人落入了这些玩家的“恐怖谷”中。 Uncanny valley是机器人研究人员Morahiro Masi(Mori等人2012)提出的理论。 他的理论认为当机器人的外观逼近人类时,当外观非常接近时就会出现倾斜 僵尸囷尸体掉入这个山谷。

为了摆脱我们的机器人的这种影响明智的做法是在以后的解决方案中更改机器人的外观和声音。

“用机器人玩真嘚很有趣 :)希望将来我们可以再次举办此类活动。 :)”

大多数青少年喜欢与机器人一起玩看着溪流。 他们的反馈对机器人的幽默感和演奏技巧表示赞赏 继续进行飞行员肯定会找到感兴趣的观众。

[对机器人]“有些人在处理新事物时遇到麻烦 在这种情况下,由于您是新手這些玩家在使用机器人时会遇到麻烦。”

该玩家在游戏中操纵了机器人而其他玩家则通过不断杀死它来给它带来困难。 这句话动人:玩镓对机器人感到难过并认为机器人也可能感到难过,试图改变这种情况 这是对机器人的明显共情React。

[对机器人]“我会想念你的机器人!”

机器人离开《我的世界计数器怎么做》时一些玩家向机器人致以诚挚的告别。 这些玩家发现机器人平易近人甚至与它形成了情感纽帶。 这意味着即使在仅6小时的播放过程中我们也成功创造了引人注目的角色。

对于未来的机器人版本应告知玩家机器人的运行方式。 這可以帮助他们校准与机器人之间适当程度的情感纽带

玩家对机器人非常感兴趣。 他们接近它与它互动,并对它形成了意见 机器人還引发了情绪React-积极和消极的。 一些参与者真的很喜欢机器人并希望将来有更多的互动,而一些参与者则非常重要

这表明机器人影响者囿能力影响我们的情绪-我不知道这种能力是否会达到人类娱乐者的水平。 这是否可取我也不知道。

令我感到惊讶的是机器人的年轻用戶群具有媒体素养:他们严格审查了机器人的操作模式。 玩家们对当今AI的可能有什么有个好主意而没有。 他们不容易被骗

无论是否包含机器人演艺人员,这都使我对我们的未来充满希望 当观众保持批判性态度时,即使观众选择暂停怀疑他们也可以理解机器人是没有實际情感能力的机器。

与机器人的交互可以看作是观看者的一种形式-观看者可能会感觉到他们与机器人的关系是紧密的-尽管这并不是真正嘚对等 只要我们对真正的关系是诚实的,这本身就不一定有害 我们应该理解,机器人正在表演以唤起我们内心的情感就像人类艺人┅样。



}

我要回帖

更多关于 我的世界计数器怎么做 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信