This 8-bit Processor Built in Minecraft Can Run Its Own Games (pcworld.com) 60
The months-long project demonstrates the physics behind the CPUs we take for granted. From a report: Computer chips have become so tiny and complex that it's sometimes hard to remember that there are real physical principles behind them. They aren't just a bunch of ever-increasing numbers. For a practical (well, virtual) example, check out the latest version of a computer processor built exclusively inside the Minecraft game engine. Minecraft builder "Sammyuri" spent seven months building what they call the Chungus 2, an enormously complex computer processor that exists virtually inside the Minecraft game engine. This project isn't the first time a computer processor has been virtually rebuilt inside Minecraft, but the Chungus 2 (Computation Humongous Unconventional Number and Graphics Unit) might very well be the largest and most complex, simulating an 8-bit processor with a one hertz clock speed and 256 bytes of RAM. Minecraft processors use the physics engine of the game to recreate the structure of real processors on a macro scale, with materials including redstone dust, torches, repeaters, pistons, levers, and other simple machines. For a little perspective, each "block" inside the game is one virtual meter on each side, so recreating this build in the real world would make it approximately the size of a skyscraper or cruise ship.
Wow. Impressive. (Score:2)
Someone clearly had too much time on their hands :).
My only quibble is having a hardware call stack. I wonder how often one needs more than a 31-call deep return stack. I don't know how often a small program would need that. It also seems you need a second stack for parameters and locals so you might as well put the return pointer there too.
Re:Wow. Impressive. (Score:5, Interesting)
The 6502 used page 1 of memory as the stack (addresses 256--511), and had no user control. That system addressed 64K of RAM, far more than this processor, so the stack size seems reasonable.
Re: (Score:2)
Re: (Score:2)
Unless you want to in-line almost everything in the code you'll want a stack and it's going to be a power of two unless there's some really weird design choices being made. Maybe they could have gotten away with half the size or decided that doubling it again wasn't practical.
If it's just a return pointer stack in hardware, I don't see why it needs to be power-of-two deep. You don't need to address the registers so each just needs to be able to copy to/from it's neighbors. You could make that as deep as you have room. If you do want to address RPs, then yeah, it makes sense to make it a power of two so you're not wasting address bits. OTOH, that stack seemed pretty huge so maybe you can address 64 registers but only implement 40 of them.
In some cases, inlining doesn't help. If c
Re:Wow. Impressive. (Score:5, Interesting)
You're over thinking it. What Minecraft players are essentially doing is creating a babbages's difference engine at a scale that works inside minecraft.
Or in other words, it's not a replica of a "silicon transistor cpu" but a "replica of a mechanical cpu that simulates a digital one"
So it's basically two orders of simulation. One because the game logic doesn't actually contain all the gates necessary to produce a complex cpu, and has a fixed clock, and you can only make something so big before the "server" starts culling things. Two, the blocks represent physical things, wires and switches, not digital things.
Minecraft is really not the thing you want to build a cpu inside, but because it is what it is, minecraft's creative mode does give you access to enough tools to create a primative transistor. Look up "Redstone computer"
"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."
https://minecraft.fandom.com/wiki/Tutorials/Redstone_computers
Re: (Score:2)
It also seems you need a second stack for parameters and locals so you might as well put the return pointer there too.
Two stacks are a typical feature of FORTH processors. With two stacks you can pass data between multiple subroutines without having to cut around return pointers or call frames. Both the input and output of a function is the data stack. Unlike a more traditional register based CPU which typically uses a register for return, even if it places a call's input parameters on the stack. As a bonus, you can use the return stack as temporary storage to reorder the data stack.
Been there (Score:4, Interesting)
We had this in the early 2000s during the Java-everything craze. People would write a microcontroller simulator in Java running on the latest x86 machine. The thing would literally run as slow as a real 8-bit 16MHz Z80 on the latest Pentium.
At least it was kinda cool. The menu bar that took 5 seconds to render out each icon when you clicked or hovered was just plain annoying.
Re: (Score:1)
> microcontroller simulator in Java
> The thing would literally run as slow as a real 8-bit 16MHz Z80 on the latest Pentium.
This story checks out.
Re: (Score:1)
I wonder how long it will be before someone makes a bitcoin mining ASIC in Minecraft
Re: (Score:2)
I find that hard to believe. I wrote an emulator for a 6502-based machine, back in the early 90s. It ran about as fast as the original 6502 on a 386, even though it emulated every memory cycle. (It read 16-bit values as two operations, instead of combining them.)
Re: (Score:3)
Re: (Score:2)
That's just it: I didn't program it efficiently. I hacked it together in a weekend and didn't optimize it, at all.
Re:Interesting, but how practical is it? (Score:5, Insightful)
Practical? It's made inside of a GAME! It was never intended to be practical. That wasn't ever the point.
Sometimes people do things like this because it is FUN.
Re: (Score:2)
Re:Interesting, but how practical is it? (Score:4, Insightful)
Also, the price for minecraft is far less than most programs that you can use to simulate transistor or gate level CPUs. I've seen some open source programs but they tend to be half finished, buggy, and abandoned. I suspect people who use Minecraft to do this might not actually be playing the game itself. You can create these layouts off-line rather than have some little guy with an axe chopping away until there's a computer, all the while trying to keep the zombies out of the circuits...
I did make a full adder in Fallout 4, but it was so painful I never tried anything bigger.
Also, anyone on Slashdot who says "what is the point?" is required to turn in their nerd card. It's like when I told my parents I wanted a computer back in the 70s, and they didn't see the point, and if vaguely aware of the point it probably boiled down to being a way to make money. But we also have a generation of "computer professionals" who don't even understand what happens below the level of the javascript they use to monetize users, not how the language works, not how instruction sets work, not how CPUs work, not how transistors work, not how the quantum stuff works, and worse thing is that they don't even care... They love their black boxes and prefer that they stay closed.
re: What's the point (Score:2)
I agree completely with most of your statement. It's absolutely something worth doing for anyone with the motivation to attempt it. Many things are done just because someone realizes they can, and learning happens as a result.
That said? I'm not sure you're being fair to the computer professionals out there doing such things as coding javascript on web pages for e-commerce applications? I used to write code back in the days of 8-bit home computers that came with BASIC as the de-facto programming language.
Re:Interesting, but how practical is it? (Score:5, Funny)
While it shows a great deal of ingenuity to make something like this, is it really practical given the specs.
This is like seeing an ice sculpture of a swan, and complaining that its wings are too heavy and too delicate to actually fly, and that it would quickly melt in warmer climates anyway, so it isn't practical to migrate south for the winter.
All valid criticisms, and yet entirely missing the point of the exercise :)
Re: (Score:2)
> If someone made the ice sculpture with the intent of having it fly then it would indeed be a bad idea.
Whoosh, woosh, woosh.... it's the sound of the Ice Swan flapping it's wings. It's a miracle!
Re: (Score:3)
Re: (Score:2)
Ah, but then you say "I sold the swan as an ephemeral piece of art for $100,000 to some rich old guy" and everyone says "brava!" So for this CPU, sell it as an NFT and all the naysayers will turn around and call it brilliant.
Re: (Score:2)
Re: Interesting, but how practical is it? (Score:3)
You can take a tour of this computer. In said tour, you can even break the machine in various ways to see how it works.
Literally if what you want is to take a tour of a working computer architecture, this might be the best way in an FPS sense. Don't need an FPS, try Conway's GOL. Doing this is nothing new and could be easily seen as a predictable outcome for anything that is Turing complete.
This being said it's undervalued as art, a cultural production that often defies business practices of something like
Re: (Score:2)
Re: (Score:2)
The first home systems were game consoles.
The Altair 8800 was hardly a game console. It was hardly a computer.
Of course I guess it could be observed that people willing to buy a computer in kit form and solder hundreds of wires to be able to maybe produce a "hello world" program were gamers.
Re: (Score:2)
It's only a simulation, just simulate time running more slowly and the processor will seem very fast then.
Re: (Score:1)
While it shows a great deal of ingenuity to make something like this, is it really practical given the specs. Even assuming a simple and tidy instruction set, a 1 Hz clock cycle makes it too difficult to run most kinds of games (or any software for that matter) for anything beyond the act of doing it because you can. Even the Atari 2600 had a processor clocked above 1 MHz.
It's probably far more interesting as a teaching tool. Being able to take a tour of a CPU to learn how they work sounds like something that I would have loved as a kid.
As a fellow homebrew CPU hobbyist, I can certainly confirm that there is little practical to result from the choice of actually building a CPU you learn to design from first principles.
The choice to learn how to do so is what results in knowledge.
The moment you realize a single latch forms a single bit, there is nothing special to duplicate that 8 or 16 or 64 times.
When you realize chaining one flip flop into another results in a 2-bit counter, and another for 3-bits, there is nothing special about chaining
Hmmm (Score:3)
You can port ZX80 games to it.
Atari 2600 emulator (Score:2)
Someone already created an Atari 2600 in Minecraft, and that was 5 years ago.
Re: (Score:2)
related: (Score:2)
Here's (turing complete) conway's game of life playing itself on a larger scale: https://www.youtube.com/watch?... [youtube.com]
Re: (Score:2)
Re: (Score:3)
https://www.youtube.com/watch?... [youtube.com]
Re: related: (Score:2)
GOL did this long before and there are countless examples of it doing it for different architectures.
What the example of Minecraft illustrates is in a way paying homage to it. Showing the beauty of more complex games still seeking to be Turing complete and how nerds can build some funny stuff in such games.
Conway's Game of Life is so beautifully simplistic it will always be the classic reference for this kind of recursive simulation showing the power of being Turing complete.
can it play minecraft? (Score:5, Funny)
You know someone sooner or later is going to build a functioning computer within Minecraft that can play Minecraft.
Maybe the universe is not moving towards max entropy, but is actually trying to achieve max recursion.
Re: can it play minecraft? (Score:2)
There is that GOL implementation that simulates a Gameboy playing Tetris. The classic quote from it's discussion is that if our existence is a simulation, this is exactly what would get someone to powered down our instance.
Someone can likely do the calculations but even with the relative low graphic quality of Minecraft, I have a feeling a single scene's rendering would take months if not years in a Minecraft simulation of the CPU game Minecraft on a decent machine. Remember none of this is really getting s
Eigenratio! (Score:2)
Yes, we need a stack of Minecraft interpreters so that we can determine the eigenratio [blogspot.com] of Minecraft.
Minecraft is Turing complete. We knew this already (Score:4, Interesting)
We knew that minecraft was Turing complete -- why is this a surprise?
What's amazing is that jbig decompression can be made turing complete. What else is lurking in our systems that can be used this way? Probably more than we think.
Re: (Score:1)
I suspect our universe is an emulation; we are an ant-farm on steroids. God may be an Asperger neckbeard; that's why we have to sing hymns him to kiss his ass so that he doesn't delete us. More likely God(s) is a giant 5D slug with 9 eyes, 4 dicks, and 6 vaginas.
Perhaps we should rework our hymns:
"You are the greatest of slugs, so many wonderous eyes, and more genitals than we lowly humans could ever dream of, oh great sluggy slug, oh great sluggy slug, Sluggalleluiah! Sluggalleluiah!"
Re: (Score:2)
Re: (Score:2)
We knew that minecraft was Turing complete -- why is this a surprise?
It's not a surprise that it's possible. It's a surprise that it was done and to what extent.
Do we live in a simulation? (Score:2)
blow you mind (Score:2)
universal simulators all the way down.
Full circle (Score:3)
In the 19th century, Babbage tried to make a computer from mechanical parts. His thinking was good, but the materials and fabrication techniques of the time weren't really up to it.
Years later, computers actually came into being using various tubes and electro-mechanical components. Eventually this lead to computers built in semi-conductors which eventually became small and cheap. Then big enough to simulate a physical world. In that world they have built a mechanical computer that actually works thanks to simplified and idealized physics.
imagine a beowulf cluster of these (Score:2)
Re: (Score:2)
darn it beaten to the punch
Not a physics demonstration (Score:2)
While very impressive, I'd say it's more a demonstration of a CPU's architecture, its complexity, how many low-level elements are needed to build a high(er) level construct, etc. Very educational in its own right. But apart from that, the 'physics' it builds on, are those of the Minecraft virtual world it's constructed inside of. That is: implicit / effectively invisible. Only the effects of those 'physics' is visible.
For a "physics demonstration", I would think more along the lines of a mechan
Same tactic used in the NSO's zero-click iOS hack (Score:1)
Re: (Score:2)
Fascinating (Score:2)
That the Minecraft engine is this flexible is quite interesting in and of itself. While I kind of echo the sentiments that it seems some people have too much time on their hands, there are plenty of worse things they could be wasting that time doing.
Re: Fascinating (Score:2)
minecraft to be banned for apple store in ?? (Score:2)
minecraft to be banned for apple store in ??
yr pulling my dick aren't you (Score:2)
The largest and most complex simulation of an 8 bit processor running at 1 Hz inside a stupid game.
Or for a reality check have a look at a 16 bit J1, not a game
Re: (Score:2)
And not just Minecraft (Score:3)
not computer science (Score:3)
The project is an incredible application of computer science in action,
Computer scientists do not build computers. It's virtual computer engineering, not computer science, except for the modeling part, which I suppose is technically computer science, but that's not what the author of the article meant. Processor design is not computer science. Neither is programming. CS is math, so if it isn't math, it isn't CS.
Obligatory xkcd (Score:2)
https://xkcd.com/505/ [xkcd.com]