变量如何存储在RAM内存中?

时间:2012-10-25 16:26:12

标签: variables

我刚刚在Minecraft中创建了一个简单的RAM内存(带有redstone),地址为4位,每个单元存储4位。我们的下一个目标是在其中存储不同类型的变量并以不同方式处理它们。

我们不是工程师,所以我们真的不知道,但我们做了一些相当复杂的事情,我们认为我们可以做到这一点。问题是我们无法弄清楚如何存储可以存储在单个单元中的更多位的变量。我举个例子。

想一个16位变量。我们认为创建大单元没有任何意义所以我们决定存储每个单元中存储4位的数据。但这还不够,我们必须将这4个细胞联系起来。所以我们认为我们必须创建8位单元,内容为4位,4位用于存储变量的下一个4位存储的地址。但是,4位地址对于RAM来说没有任何意义,我们无法存储任何内容。所以我们需要至少8位的地址。 4比特的内容似乎也很低,我们还需要至少其他4比特来存储变量的类型。

嗯,最后我们认为这种技术很荒谬,并且不能像现实生活那样完成。我们现在不知道该怎么做。我在网上搜索了RAM是如何工作的,而我发现的少数几个太复杂,无法满足我们的需求。

有人可以向我们解释一下现实生活中是如何做到的吗?

1 个答案:

答案 0 :(得分:2)

嘿,你正在玩责备游戏,试图将内存管理的所有责任都固定在物理RAM实现上。

事实上,RAM只是一个存储设备(你的红石瓦片),实际上存储数据是你的程序的责任。换句话说,RAM不需要标准化的存储单元“链接”策略,因为它是你的程序写入它然后再读回来,所以它知道它自己的常见做法。

考虑到这一点,存储值很容易。假设您想要一个存储在4位/字RAM中的16位整数(因此4个字的数据)。只需将地址0到4作为变量即可。没有必要“链接”,因为你们都知道如何从中读取并写入它,并且你不会踩到自己的脚趾(理论上)。

增长构造的其他想法:专门注册表的特殊位置(堆栈指针使用堆栈进行递归计算,图形指针用于图灵机等)。我还有一个,但是在写这个时我忘了它,如果我记得它我会编辑..