<本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。>

教程/红石计算机

来自Minecraft Wiki
跳转至: 导航搜索
Clock.png
此条目需要更新。

条目中某些信息已经不符合当前版本情况。

此条目的内容需要改进以达到条目标准

此条目的内容因翻译质量较低而违反或未达到条目标准。
你可以帮助我们来改进此条目。

本文在探讨Minecraft中计算系统的设计和实现。

第一节, 建造一台计算机的教程,这是一个关于如何在Minecraft中建造计算机以及如何扩展与改进的详细教程。不需要大量的计算机科学方面的知识。尚未完成

第二节, 设计一个红石计算机,提供了在Minecraft中设计与理解一个红石计算机的基本概念。不需要大量的计算机科学方面的知识。

概述[编辑 | 编辑源代码]

Computers facilitate the implementation of ideas that are communicated from humans through programming.

This article will explain the basics of designing and building a computer in Minecraft, assuming the reader is fairly familiar with redstone and computers to a basic level.

 There really is no way of building a computer without knowing how a computer works. The tutorial attempts to explain everything that you need to know but does require a bit of understand here and there of computer science, which is stated in the prerequisites section of each tab. The deepest part we cover is up to IGCSE CS.

All computer systems have at least one processing unit. During operation, processing units execute instructions stored in the computer's memory. For a good start on Minecraft computers you should learn computer science. There are many sources and tutorials to learn computer science but for a basic start, it is recommended to watch Crash Course on Computer Science especially episodes 1–8. Although, it isn't completely thorough it can work as a basis in your understanding of computers.

Most computers in Minecraft are made of redstone dust, redstone torches, and repeaters, leading into sticky pistons or redstone lamps which are controlled using a series of buttons, levers, pressure plates, etc. Other proposed ideas (not covered) are to use hoppers, mine carts, or boats with redstone.

See chapter 1, Tutorial on Building a Computer, for a detailed tutorial on building a computer in Minecraft and how to expand and improve on the given example. It does not require any extensive knowledge of Computer Science as it will be explained but will delve quite deep into it.

See chapter 2, Planning a Redstone Computer, for basic computer concepts of designing and understanding a redstone computer in Minecraft. It does not require any extensive knowledge of Computer Science but will delve quite deep into it.

Implementations[编辑 | 编辑源代码]

Computers can be used in many ways, from creating a smart house to using it to run an adventure map. However, due to the limitations of computers in Minecraft, stated below, they remain an abstract concept and serve as good tools to understand lower-level concepts of CPU architecture and embedded systems.

The thing that sets apart computers and calculators are that calculators cannot perform multiple instructions in a row without user input. A computer can compare and assess instructions in a flow to perform tasks.

However, in Minecraft, they are extremely slow and with their large size, redstone computers are difficult to find practical applications for. Even the fastest redstone computers take seconds to complete one calculation and take up a few thousand blocks of space. Command blocks are far superior to computers in Minecraft because of their speed and legible, higher-level commands.

Mods can change the computer's speed such as TickrateChanger will change the tick rate of the game.

红石计算机的规划[编辑 | 编辑源代码]

当设计一个计算机,设计结构会影响整个红石计算机。规模和性能取决于计算机的组成。

一些事情需要考虑:

  • 执行模型(内存的计算机组织与程序存储和执行)
  • 字节大小(信息的大小,你的红石计算机用这些执行命令)
  • 命令集(红石计算机的一个结构)
  • 内存大小(数据可以存储在内存中,可存储数据多少取决于内存大小)


有一个选择决定将提供强有力的指导在各种组件的设计你的电脑。

执行模型[编辑 | 编辑源代码]

命令存储块的技术叫做程序在内存是允许计算机同时执行各种不同的任务。使用的设备由计算机来存储和检索这些程序是计算机的执行模型。世界上最成功的两个执行模型,哈佛和冯·诺依曼,今天将近100%的可用的计算机上运行。

哈佛结构[编辑 | 编辑源代码]

The Harvard architecture 检索器分离的命令组成一个活跃的程序从数据访问器的程序在执行期间访问。   编写的程序对电脑使用哈佛架构可能执行的任务达到快100%访问主内存总线。但是要注意,哈佛架构的某些记忆电路体积会很大。

冯·诺依曼结构[编辑 | 编辑源代码]

The von Neumann architecture使用一个两步的过程来执行命令。首先,加载内存包含下一个命令,然后新命令加载是允许访问相同的内存,因为它执行,使用一个内存的程序和数据促进元编程技术像编译器和自我修改代码。    冯诺依曼体系结构是第一个提出模型的计算和几乎所有真实的计算机是冯·诺依曼在《自然》杂志上。

位宽与指令位数[编辑 | 编辑源代码]

位数大小是计算机物理尺寸的主要因素。 在Minecraft中,从1位一直到32位的机器已经被成功构建出来。 常见的字大小的组合:

数据 命令
4 8
8 8
8 16
16 16

数据字符[编辑 | 编辑源代码]

计算机在任何特定时间可以操作的信息量代表了计算机的数据字大小。

在数字二进制中,计算机的数据字大小(以位为单位)等于计算机主总线中通道的宽度或数目。

数据字通常表示整数,或编码为二进制数字模式的整数。

最大大小的数量可表示的二进制整数编码是2 ^数据字宽度在位- 1。

一些常见的整数数据大小是:

最大可表示的数量 所需的字节数
1 ( 2 ^ 1 - 1 ) 1
7 ( 2 ^ 3 - 1 ) 3
15 ( 2 ^ 4 - 1 ) 4
255 ( 2 ^ 8 - 1 ) 8
65535 ( 2 ^ 16 - 1 ) 16
4294967295 ( 2 ^ 32 - 1 ) 32

数据字大小还决定了可以由计算机的ALU(算术和逻辑单元)处理的数字的最大大小。

命令字[编辑 | 编辑源代码]

计算机完成一条命令所需的数据量代表计算机命令字大小。

计算机的命令字大小通常是其数据字大小的背书,这有助于在程序执行期间检索命令时最小化存储器未对准。

计算机的设计[编辑 | 编辑源代码]

命令集架构[编辑 | 编辑源代码]

状态[编辑 | 编辑源代码]

内存是一系列的位。在Minecraft中,尽管曾经成功创造过32位和64位[1]计算机,但是通常情况下内存占8位或16位。每一位都是两种可能的状态中的一种:开或闭。而内存就是一系列的开和闭,用于完成特定的任务。

信号[编辑 | 编辑源代码]

现实世界计算机使用二进制,一系列的1和0。“1”表示“开”和“0”表示“关”。在"Minecraft,最好的体现是红石:有信号意味着“1”,没有信号表示“0”。然而,根据距离红石从内存存储,它是“0”可以是任何信号强度从0到14。你也可以设计,使“1”信号强度从1到15。

[编辑 | 编辑源代码]

我们常规的十进制是一种以10为基数的数字系统。在电脑中使用的数制——二进制,则是以2为基数。为了比较两者,我们看一下两位数。在十进制中,左边的那一位是十位。在二进制中,则是“二位”。比如在十进制中,“10”表示“十”。而在二进制中,“10”表示“二”。有两种常用的十进制转二进制的方法:

最高位优先:这种方法需要一点直觉。我们以42为例。首先我们找(小于等于42的)最大的2的幂(“2的幂”就是如32 [2^5] 或65536 [2^16])。在这个例子中,是32。然后我们用例子中的数字来减它,42-32=10。那么最左边的一位就是“1”。随后我们继续找下一个2的幂,看它是否小于等于当前的数字。对于这个例子来说,下一个是16,16并不比10小,所以接下来这一位是“0”。一直找下去直到数字为0为止。无论二的幂是小于还是等于当前的数字,都要减掉它,并且记下一位为“1”。否则下一位就是“0”。就我们的例子来说接下来就是 8<10-->10-8=2-->"1" 4>2-->"0" 2=2-->2-2=0-->"1" 1>0-->"0" 因此最终42的二进制表示就是“101010”。不错。

最后是最低位:这个方法不需要记忆许多2的指数。相反,它重复将数字除以2,使用商作为下一个被除数,余数作为二进制位。 但请记住,此方法从右到左写入二进制数,而不是像前一种方法一样从左到右写入。 让我们重用我们的例子,42: 42/2=21 r 0 (最右边的数字是0) 21/2=10 r 1 (向左边一位的数是1) 10/2=5 r 0 (向左边一位的数是0) 5/2=2 r 1 (向左边一位的数是1) 2/2=1 r 0 (向左边一位的数是0) 1/2=0 r 1 (向左边一位的数是1)

商数为0,所以我们停止。 这给了我们二进制数“101010”。与之前的方法相同。

过渡[编辑 | 编辑源代码]

[编辑 | 编辑源代码]
命令[编辑 | 编辑源代码]

功能本质上是由计算机命令构成的,命令的例子包括:

  • 加、减、乘、除
  • 从RAM/ROM/第三存储器的读/写
  • 读取和写入数据到内存
  • 分支的其他部分代码
  • 比较寄存器
  • 计算一个逻辑函数 (NAND,NOR,NOT etc.)

命令可以被编程到内存,从ROM加载或直接通过一个拉杆或按钮激活。每条命令都有它自己的特定的二进制串分配(比如0000=从寄存器加载数据,0001=A加B,等),并且可能需要其自己的二进制到十进制或二进制到BCD到十进制编码器和总线到ALU或寄存器。

归类[编辑 | 编辑源代码]

抽象[编辑 | 编辑源代码]

映射[编辑 | 编辑源代码]

符号[编辑 | 编辑源代码]
数字[编辑 | 编辑源代码]

符号可以用红石灯或者活塞的推拉方块产生凸凹起来显示:

注:如果用红石灯的话不要用黄色的方块做面板,不然不容易分辨。

功能[编辑 | 编辑源代码]

形式化[编辑 | 编辑源代码]

可计算性[编辑 | 编辑源代码]
变量[编辑 | 编辑源代码]

变量是数字、字符串、字符(套)或布尔值(真/假)存储在RAM中的空间。例如,布尔值可以用来保存信息如果程序已经达到某种状态。以下信息需要保存一个变量:名称,类型(数字、字符串或布尔),和变量值。变量,顾名思义,改变。命令操作可以改变变量。在运行程序时创建变量,一旦程序结束,变量值会被从内存中删除。当一个程序重启,变量会被重置。


层次结构[编辑 | 编辑源代码]

内存[编辑 | 编辑源代码]

内存是储存您的程序数据的地方。 它是可更改的 (但它在计算机关闭后将会被删除),它也用于储存您计算机的数据。例如说,在一个从1开始计算的程序中,1就被储存在了内存中,从内存中加载出来的1被添加上原来的1便得到了2。

执行[编辑 | 编辑源代码]

语义[编辑 | 编辑源代码]

数据[编辑 | 编辑源代码]

数据是计算机处理的信息,使用二进制表示。

控制单元(CU)[编辑 | 编辑源代码]

机器架构[编辑 | 编辑源代码]

数据通道[编辑 | 编辑源代码]

Processing[编辑 | 编辑源代码]

算术逻辑单元(简称ALU)[编辑 | 编辑源代码]

1-bit 3 function ALU.png

ALU是计算机最重要的组件之一,在现实生活和Minecraft中。首先,你必须选择你希望能够实现的功能。大多数时候,这些都是加法、减法和一组逻辑选项。

与,或,与非,或者你所喜欢的。你必须建立单位和所有你想要的逻辑门和数学函数和选择哪一个的输出显示。

(数据)总线[编辑 | 编辑源代码]

用总线允许您的计算机的组件相互通信。

一条总线可以通过使用创建红石布线连接你的计算机的运算器,随机储存器,只读储存器,中央处理器和寄存器在一起,这样他们就可以互相之间发送数据。通常是重要的计划,建立你的电脑的组件,否则你创建总线过长,或者更糟的是,没有空间来创建总线,在这种情况下,您可以删除的组件并重建一个适当的位置,或者使用像WorldEdit移动组件到其他地方。

存储[编辑 | 编辑源代码]

Register

随机存取存储器[编辑 | 编辑源代码]

4byteRAM default.png

随机存取存储器又称RAM,是程序使用的一种存储器,具有易失性。易失性是指当电源断开时,它将丢失信息。大多数情况下,在Minecraft中内存数据不会失去,所以最简单的方法就是使用d-触发器来添加读写功能。

二级存储器[编辑 | 编辑源代码]

这相当于HDD和SSD。下面介绍一种非常紧凑的存储技术,要涉及到红石比较器,能够存储高达1KB的实际数据大小。

https://www.youtube.com/watch?v=1zE_XZLTDBw

三级存储器[编辑 | 编辑源代码]

第三,也是最后一点,是第三级内存,它需要大量的时间来读/写,牺牲速度但可以存储大量信息。在现实世界中,三级存储器使用的是一种老式的挂载内存的机制,而且现在也很少使用了。在Minecraft中,这种系统要用潜影盒来完成,潜影盒中的方块必须由排序系统进行排序,以表示某种形式的数据。由于这些工作需要大量的比较器和大量的时间,所以读/写速度相当慢。然而,利用某些mod可以加快游戏tick的速度并消除这个问题。这用于存储长期数据,这些数据需要在程序开始时加载。相当于一台真正的计算机的机械硬盘或固态硬盘。

机器状态[编辑 | 编辑源代码]

程序计数器[编辑 | 编辑源代码]

程序计数器用于告诉CPU应该运行哪行代码。在每个时钟周期,解码器将访问这个计数器来获取下一个要执行的命令。一些命令会比另一个访问不同的数据量,或任何数据,因此解码器将适量增加程序计数器的下一个命令。使用的计数器也跳转命令控制程序流。   

控制路径[编辑 | 编辑源代码]

处理[编辑 | 编辑源代码]

控制单元[编辑 | 编辑源代码]

Redstone Computer Control Unit.PNG

总线[编辑 | 编辑源代码]

Redstone Computer Control Busing.PNG

硬盘[编辑 | 编辑源代码]

Redstone Computer Tertiary Memory.PNG

固体方块可以被红石中继器强冲能,强充能方块可以点亮周围的红石粉。透明方块却不可以被冲能,这就是一个简单的硬盘。

程序内存[编辑 | 编辑源代码]

Redstone Computer Program Memory.PNG

程序内存,最基本,ROM(只读存储器)。ROM是最常用的远程执行一系列任务(如一个程序,因此得名)。它可以用来在用户控件(如图片)或每一行之间的时钟和足够的延迟2不是在同一时间。最简单、最高效的设计之一是一个图中,这可能是也可能不是加上解码器。它可以很容易地扩大,这是另一个优势。

机器状态[编辑 | 编辑源代码]

Redstone Computer Machine State.PNG

程序计数器[编辑 | 编辑源代码]

Redstone Computer Program Counter.png

时钟[编辑 | 编辑源代码]

Redstone Computer Clock.PNG

时钟同步组件或使用时间。(Minecraft)在大多数情况下,可以避免使用但有时它是计算机的功能所必需的。它基本上可以由红石火把链接成一条线/圈的非门(奇数建议或者你的输出必须“取反”),或者中继器,如上图所示。

提示[编辑 | 编辑源代码]

  • 你也可以使用一些像是WorldEdit的模组
  • 如果你在生存模式没有太多的红石中继器 你可以用两个红石火把代替
  • 利用颜色进行分区(例如用蓝色羊毛建造RAM(随机存取存贮器),黄色羊毛建造ALU(算术逻辑部件运算器)等)