MCPE/Bedrock Scott CPU

MCPE/Bedrock Scott CPU

This is a fully functional 8Bit Computer in Minecraft Bedrock. The design of the computer is based on the famous Scott CPU in the book But How Do It Know? The Basic Principles of Computers for Everyone by J. Clark Scott. Give it a try!

 

Note: High-school level understanding of computer science is recommended. You will know why really soon. If you haven’t read But how do it know?, I highly recommend the book. (Not sponsored) You will be a pro at this after you’ve read it, and it’s not hard at all. 

Or you can take the long route and wait until college. ?

If you are experience in Computer Science already, hello there and it’s genuinely nice to see someone work in similar field and have similar interests than me. Download it and give it a try. A assembler is provided in my Github Page for you to write basic programs with. 

The Computer

I built this computer to help me and my peer to understand the principle of digital logic. Now, I am sharing it to you. This is a fully functional Scott CPU in Minecraft. Below are some Blender renderings of the project. 

The Design

This computer is closely based on the original Scott CPU with a few changes:

  • IO system is completely redesigned for practical reasons.
  • A stack, a 24bit fixed point multiplyer circuit, and a keypad/display are attached to the IO system.
  • Due to how Minecraft Redstone works, a signal takes time to travel (with repeaters). Thus, a 2D flat design is undesirable because the wires will be just too long. I’ve utilized the vertical dimension to structure the computer in order to minimize wire length. For example, the general purpose registers are literally wrapped by the common bus.
  • Also, due to how Minecraft Redstone works, a signal only travels in one direction in a Redstone line (with repeaters). Thus, all outputs of all components are wired before all the inputs.
  • Although the CPU is quite optimized, it’s still slow (about 30 second per instruction). So it is technically 0.01Hz, 0.01 instructions per second. Just put into perspective, modern CPU run at 3GHz, that is three billion instructions per second. This does not mean that it can’t execute complex arithmetics. It got all the logic to do fancy stuff. It just means that it takes time. AFK is recommended.

The Layout

  • You will spawn on the ground before the actual CPU.
  • All wires of the CPU are attached to command block. Giving real-time chat update on the state of the computer. Like “wire on” or “signal received” or even “stepper advanced”. You can turn all command blocks off by pressing a convenient button on the ground near spawn.
  • There is a dedicated building zone where all the components are laid out on the ground, like adders or memory modules. You can experiment with those components and see how they works by flipping leavers.
  • No worry of accidentally unloading part of the computer while it’s running. Ticking areas are setup so that all chunks of the computer are loaded at any given time.
  • Also, please aware that huge Redstone stuff = huge lag. I use a recent iPad Pro, so lag isn’t a problem. But the same can’t be said for other devices.

Technical Features

Below are some unique feature of this computer that other Minecraft computer may not have: 

  • Carry Lookahead for all adders.
  • Complex ALU architecture
    • Operation Capability: bitwise XOR, OR, AND, NOT, Shift Left, Shift Right, ADD
    • Flag Capability: Carry, A-larger, Equal, Zero
    • Carry Memory System (for more than 1 byte arithmetic Add, Subtract, Shift operations)
  • Large Memory Bank, full 8bit addressing: 256byte memory
  • Expandable IO system

Operating the Computer

Below is the primary interface map. 

There should already be a simple program loaded onto the computer - a program that does 10×3 and display it to the IO. 

To run the default program: 

  1. Press [Reset IAR] to reset the instruction address register to 0 to begin program execution from the beginning.
  2. Turn [Loop] mode on. This will automatically step the stepper after it is has stepped once.
  3. Press [Reset Stepper] to reset the stepper to 0. The program should execute now.

Wait until you observed an output on the 8Bit display on the back of the computer. It should say 00011110 in binary, which is 30 in decimal. Indicating a correct execution. 

To stop program execution, turn off [Loop] mode. 

To write to memory manually: 

  1. Turn on [Memory Override] when computer is off.
  2. Input a desired memory address using the "A" keypad. The memory content of said address will be display in the Yellow "D" display.
  3. Put the new value in the Blue "D" keypad, and press "Write".
  4. You've changed the memory address.

Warning: do not open Memory Override Mode when program is executing. Do not execute program while the Memory Override mode is on. Rerunning program is strongly recommended after turning on Memory Override Mode (because the memory specific registers are all modified). 

For more details or to report issues, please visit my GitHub page

 

Changelog
  • Paraphrased all paragraphs.
  • Insert a image about the “Building Area”
creator: Yuanda Liu