Minecraft Memory

Okay, this place needs some real content, so… here’s two kinds of memory I built in Minecraft.

Piston-based memory

This is a byte of readable memory with the ability to increase its value by one on request. Each byte is stored as a stack of gold/glass, the position of which determines its current value. A toggle signal (coming from the right) checks if it’s set or clear and triggers one of the pistons depending on the state, toggling it. If it’s switched from 1 to 0, the trigger signal is sent on to the next bit in line, and so on.

All 8 bits. The yellow line of wool in the distance sends a clock pulse to make the byte continuously increase by one.

For good measure, a piston-powered display unit which – due to my poor planning – has the LSB to the left and the MSB to the right. Oops. The switch to the left switches between normal and overclocked which doubles the clock pulse frequency. All in all, the system completely lacks redstone torches (except as a source of constant power) as they burn out when used in this high-frequency system.

Repeater-based memory

Now here’s a major kludge, basically thrown together as a proof-of-concept. It stores bytes as a loop of 8 repeaters, making the individual bits fly around in a circle. The entire system is thus based on timing. The large triangle at the bottom is used to generate an 8-tick pulse (which I’m technically misusing here out of laziness as its input is more than one tick long) used for operations that affect all 8 bits of the two registers.

The loop in the lower right defines the constant value 1 and thus, in theory, the timing of the system. The loop to the left of it is the A register. The gold block makes sure that the data is retained. Triggering the piston for 8 ticks will break the circuit and clear the byte. At the top of the loop, where the other gold block doesn’t complete a circuit, is the input for the constant 1, allowing one to OR the register with 1 if the piston is activated for 8 ticks. (Hardly useful, I know, but proof-of-concept, remember?)

A shot of the essentially identical B register. Also visible to the right of it is two lines of repeaters in opposite directions. By completing those circuits for 8 ticks, one can transmit the data from one register into the other, ORing them. By first clearing the target register, it simply works as a normal copy.

There’s currently no way of outputting the values, mostly because I haven’t had time to make such a system yet.

Pistons are used for changing the state of the system as redstone torches again are too slow to handle the high update frequency.