Redstone Computers [Official]

Such an intricate part of Minecraft that it deserves a whole section dedicated to it. Post your most amazing Redstone creations here!

Post Permalink
by Phrozenbit » 5/14/2012

So i was searching the forums for a while looking for a good topic on Redstone computer creation, and could not really find what i was looking for.

I am somewhat new to creating computers and already have done a fair amount of work and research on it. I am currently working on a third version of my Redstone computer, because, admittedly i have in a way failed at my first two attempt, although it taught me much.

So why this topic one may ask, well i am looking for people that are willing to discuss certain elements of the Redstone computer, such as RAM, Instruction set design, program counters and busing for example.

This topic should be for people that either want to learn about how to build Redstone Computers and it's components, or for the ones that already have a lot of experience and want to share their knowledge to beginning builders.

I have started this topic to learn more, gain experience in computer technology, and to avoid massively filling up the comment section on a project page :geek:
I would also be happy to share what I already have learned of course.

You may want to read up on some information if you want to seriously participate in this topic. I'm sure there will be lot's of questions, so i will be directing you guys back to the first post.

You absolutely need to have a basic understanding of binary to start with:
http://en.wikipedia.org/wiki/Binary_numeral_system

Some basic understanding of Bitwise operations could come in handy:
http://en.wikipedia.org/wiki/Bitwise_operation

Read up on the subject ALU:
http://en.wikipedia.org/wiki/Arithmetic_logic_unit

The computers here are roughly based on the RISC architecture:
http://en.wikipedia.org/wiki/Reduced_instruction_set_computing

Don't forget the minecraft wiki on how to build these logic gates with redstone:
http://www.minecraftwiki.net/wiki/Redst ... ogic_Gates

Here are a handful of very good Redstone engineers who have inspired me to learn more on this subject. I suggest you check out their submissions. Be nice when you download something, drop a diamond. These kind of projects take a lot of time, and sometimes gives you free headaches. List is in no particular order.

properinglish:
http://www.planetminecraft.com/member/properinglish/

RevolutionalRedStone:
http://www.planetminecraft.com/member/revolutionalredstone/

SilvercraftRedstone:
http://www.planetminecraft.com/member/silvercraftredstone/

zaubara:
http://www.planetminecraft.com/member/zaubara/

There are some rules I'd wish people to follow:

  • No excessive trolling
  • Read before you type
  • Think before you type

Although I think most of you will do fine. Feel free to ask any questions, there is bound to be someone here that can answer. Have Fun!
Last edited by Phrozenbit on 10/14/2012, edited 8 times in total.
Image
Image
Image
Image

Image
User avatar
Level 1
New Miner
Posts: 841
Joined: 4/9/12
Location: Milkyway Galaxy
Says: You're*
Minecraft: Phrozenbit
mc_server: Home server

Post Permalink
by RevolutionalRedStone » 5/16/2012

Hey Phrozenbit,

A Redstone CPU thread is a great idea.

I'de be very happy to contribute, Places I can be usefull include
Computability analysis ( ask me if your CPU is Turing complete )
Code Density analysis ( ask me how effective your Instruction set is )
Information abstraction ( ask me anything about symbols and numbers )

Onto discussion, a good place to begin with is logistics :

I wonder How long have people Been workin on there machines ?
Some of you Might not have guessed, but these Redstone computers take a really long time to build ! ( my first full featured Redstone computer The J400 has taken a solid 6 months thusfar ans with it's newly added control unit is finally reaching completion )
The larks on the wing and the snails on the thorn -
- Gods in his heaven and all's right with the world.
User avatar
Level 42
Master Princess
Posts: 408
Joined: 8/3/11
Location: Australia Perth
Minecraft: SEELE

Post Permalink
by Phrozenbit » 5/18/2012

Great to see you here :-)

CPU's do take a long time to build, at first i thought ' this will take me a month or so ' but i was completely wrong about that :-)

Currently i'm designing parts of the CPU. I don't know if i'm going vertical or not. If i build the memory modules vertically they have a very small footprint, but busing may be bit more difficult. If i build them horizontally busing is easy, but the footprint increases rapidly.

Basicly i'm just taking my time and building both horizontal and vertical versions of the components to see which is better, but i do love some input on that.
Image
Image
Image
Image

Image
User avatar
Level 1
New Miner
Posts: 841
Joined: 4/9/12
Location: Milkyway Galaxy
Says: You're*
Minecraft: Phrozenbit
mc_server: Home server

Post Permalink
by Phrozenbit » 10/6/2012

Continuing something that has started in a comment section under one of my projects.

User 'NoseJob for a Cowboy' wrote:

I once saw a computer on YouTube that had 500 functions or something ridiculous. xD The guy in the video even said that only 30 of them would ever be used. I'm going to look for that now....

It took forever, but I finally found it. And it can do over 2000 functions o_o most of those must be algorithms though, as the creator says only 30 are used by the instruction set itself. Anyway, here it is, probably the best RS computer I've ever seen:

http://www.youtube.com/watch?v=3sIMqgfKCf0

I've heard a lot about BCD and seen binary to BCD decoders, but I never looked into it too heavily. I might check that out now. If I do decide to make a screen for the next computer, I'm doing that. There's no way I'm decoding to decimal for 65,535 values. :|

About the typing, I do press enter twice, and it looks fine in the editor. Then, when I click submit it just makes it look like I pressed enter in random spots! It's annoying as hell and making my posts even longer than they actually are. lol
Image
Image
Image
Image

Image
User avatar
Level 1
New Miner
Posts: 841
Joined: 4/9/12
Location: Milkyway Galaxy
Says: You're*
Minecraft: Phrozenbit
mc_server: Home server

Post Permalink
by Phrozenbit » 10/6/2012

Wow, that's a big computer. Don't tell me it only does the Fibonacci sequence :D

Yeah, Decoding 16 bit's 'the hard way' would be impossible, if not very very inefficient. Even if one should use Spatial decoding. I'm thinking of building this 'double dabble' algorithm though. It would do all the steps needed in say 16 cycles for a 16 Bit word. It's been on my mind like a splinter for a few months now, I'm sure you know how that feels.
Image
Image
Image
Image

Image
User avatar
Level 1
New Miner
Posts: 841
Joined: 4/9/12
Location: Milkyway Galaxy
Says: You're*
Minecraft: Phrozenbit
mc_server: Home server

Post Permalink
by NoseJob for a Cowboy » 10/6/2012

Phrozenbit wrote:Wow, that's a big computer. Don't tell me it only does the Fibonacci sequence :D

Yeah, Decoding 16 bit's 'the hard way' would be impossible, if not very very inefficient. Even if one should use Spatial decoding. I'm thinking of building this 'double dabble' algorithm though. It would do all the steps needed in say 16 cycles for a 16 Bit word. It's been on my mind like a splinter for a few months now, I'm sure you know how that feels.


I'm sure it can do a lot, I don't recall him listing any functions though. I'll have to check that out later. I always thought it was kind of funny how the Fibonacci sequence seems to be the "Hello world!" of redstone computers. xD Initially I just write a few random things, add a couple numbers, or AND them or whatever, just because I'm eager to play with my new machine. :P For my demo program it's usually just a counter:

1. read from ROM0, (for user input, which will be a 1 in this case) write to ALU input B (register)

2. ALU function ADD, ALU output, write to RAM0

3. read from RAM0, write to ALU input A

From the last line I write in the go-to command, 0001, (probably going to 5-bit for my next program counter) to make it loop back to line 1. (the second code of instructions) The single 1 remains in register B too save time, and I can increase by an integer once every 2 clock cycles. It's a nice way to test the adders for bugs as well. Not sure about you, but I tend to find a lot of mistakes I made myself during construction.

EDIT: You can't subscribe to threads on this site? D=
Image
User avatar
Level 11
Journeyman Cowboy
Posts: 323
Joined: 10/5/12

Post Permalink
by XSLinKsZ » 10/6/2012

I will donate 2,000 USD to ANYONE who can create a redstone computer IN minecraft that can play a video of minecraft :D
Image[/url]
Level 5
Apprentice Miner
Posts: 281
Joined: 6/1/12

Post Permalink
by InfraRedd » 10/6/2012

XSLinKsZ wrote:I will donate 2,000 USD to ANYONE who can create a redstone computer IN minecraft that can play a video of minecraft :D

Little kids shouldn't be talking so big on the Internet. It can get you in trouble.
http://www.planetminecraft.com/project/ ... minecraft/
You owe someone quite a bit of money that I doubt you have.
User avatar
Level 1
New Miner
Posts: 929
Joined: 7/25/12

Post Permalink
by Phrozenbit » 10/6/2012

NoseJob for a Cowboy wrote:
I'm sure it can do a lot, I don't recall him listing any functions though. I'll have to check that out later. I always thought it was kind of funny how the Fibonacci sequence seems to be the "Hello world!" of redstone computers. xD Initially I just write a few random things, add a couple numbers, or AND them or whatever, just because I'm eager to play with my new machine. :P For my demo program it's usually just a counter:

1. read from ROM0, (for user input, which will be a 1 in this case) write to ALU input B (register)

2. ALU function ADD, ALU output, write to RAM0

3. read from RAM0, write to ALU input A

From the last line I write in the go-to command, 0001, (probably going to 5-bit for my next program counter) to make it loop back to line 1. (the second code of instructions) The single 1 remains in register B too save time, and I can increase by an integer once every 2 clock cycles. It's a nice way to test the adders for bugs as well. Not sure about you, but I tend to find a lot of mistakes I made myself during construction.

EDIT: You can't subscribe to threads on this site? D=


I know, it is funny that Fibonacci thing, to be honest that was the first thing i wanted my Computer to be able to do also. An actual Hello world would be cool as well though, but then you would be creating a word processor device that works with a CPU.

I guess we both have different idea's on instruction set designs and component design. I'd like the ALU part of my computer to do only the very basic things like Add, AND, OR, XOR, and NOT ( and the negative counterparts of them ), Creating a very limited set of instructions. With those functions however I would like to perform algorithms such as Subtracting using two's compliment, Multiply by just adding A to itself n times defined by what's on B ( Or by two via left-shifting ) and such. As for the ALU part.

I do plan on creating temporary registers for A and B. They will also carry out the Load A and B functions of the ALU. I have to find a way to time that properly using one signal for Load A and one for Load B so I'm building temporary register controllers to make sure the data is present on the bus before the register gets its pulse to store the data. The data then can be changed safely on the bus.

The ALU will get a function decoder, which will probably be 4 bits, allowing for a total of 16 system functions.

I'm planning on building a big RAM, 16 bytes utilizing the full 4 bit address space I'm allocating for it in my instruction set. It's output will be hooked up directly to the A and B temporary register controllers, and the Input will be hooked up directly to the ALU's accumulator. These paths will be very short, because the ALU will sit strategically right on top of the RAM, hoping to make it somewhat fast.

This kind of gives me the instruction set already. I need 4 Bits for the functions, and 4 Bits for the RAM addresses. So a program memory of 8 bits would suffice perfectly. I'm thinking of making it 16 Bytes too.

16 bytes for 16 program lines means i need a 4 bit branching program counter, I know of a compact counter, and a compact comparator ( the comparator being part of the ALU for now ). Using these two components I could rig the counter up to make it conditionally branch whenever a certain condition is met. The clock would be hooked up to only the counter.

To complete things a bit i could create displays that display the result in hex and binary. The binary to decimal decoding system would be another device that needs to be hooked up to the output of the RAM, but I have no solid Idea's about that yet.

I have this feeling this could be a compact and fast design with a considerable amount of memory. What have I just been writing... :shock:

Before i forget, the 'user control panel' at the top left has a link that allows you to manage subscriptions. You automatically subscribe to a topic when you post something in it. Took me a while to figure out as well ^^
Last edited by Phrozenbit on 10/6/2012, edited 3 times in total.
Image
Image
Image
Image

Image
User avatar
Level 1
New Miner
Posts: 841
Joined: 4/9/12
Location: Milkyway Galaxy
Says: You're*
Minecraft: Phrozenbit
mc_server: Home server

Post Permalink
by Phrozenbit » 10/6/2012

InfraRedd wrote:
XSLinKsZ wrote:I will donate 2,000 USD to ANYONE who can create a redstone computer IN minecraft that can play a video of minecraft :D

Little kids shouldn't be talking so big on the Internet. It can get you in trouble.
http://www.planetminecraft.com/project/ ... minecraft/
You owe someone quite a bit of money that I doubt you have.


An excellent way to deal with uninformed trolling there :lol:
Image
Image
Image
Image

Image
User avatar
Level 1
New Miner
Posts: 841
Joined: 4/9/12
Location: Milkyway Galaxy
Says: You're*
Minecraft: Phrozenbit
mc_server: Home server

Post Permalink
by RevolutionalRedStone » 10/6/2012

I like the sound of your computers description; it sounds exactly like the type of device i like to build.

Is your binary's a little-off today ? 4-bits allows for at most 0-15; a fifth-bit is necessary for 32 addresses. ( fitting longer operands like these into 8-bits is exactly where I'm up-to on my new X699 computer )

I totally agree with you about the merits of RISC Redstone; there's just not enough space or Minecraft performance to justify broad instruction-sets.

The only place i can dis-agree at all is with your ALU's using the function NOT over the function NOR ( you can load the same register into A & B to still achieve a NOT; but now you also have the ability to NOR )

Great thread BTW : )
The larks on the wing and the snails on the thorn -
- Gods in his heaven and all's right with the world.
User avatar
Level 42
Master Princess
Posts: 408
Joined: 8/3/11
Location: Australia Perth
Minecraft: SEELE

Post Permalink
by Phrozenbit » 10/6/2012

RevolutionalRedStone wrote:I like the sound of your computers description; it sounds exactly like the type of device i like to build.

Is your binary's a little-off today ? 4-bits allows for at most 0-15; a fifth-bit is necessary for 32 addresses. ( fitting longer operands like these into 8-bits is exactly where I'm up-to on my new X699 computer )

I totally agree with you about the merits of RISC Redstone; there's just not enough space or Minecraft performance to justify broad instruction-sets.

The only place i can dis-agree at all is with your ALU's using the function NOT over the function NOR ( you can load the same register into A & B to still achieve a NOT; but now you also have the ability to NOR )

Great thread BTW : )


Haha you're completely right, i was confused there for a bit. I'm used to build RAM modules that have 16 registers that are 16 Bit wide, making the registers essentially 32 bytes using a 4 bit decoder... I noticed it and changed that right away.

I am still working on a good ALU design, I still don't seem to understand it fully though. What i'm doing first is test bench my current design and improve on that, taking your advice into account.

Kind of funny to see we have roughly the same idea, great minds think alike I guess.

Nice to have an expert in the field around in this thread too :D
Image
Image
Image
Image

Image
User avatar
Level 1
New Miner
Posts: 841
Joined: 4/9/12
Location: Milkyway Galaxy
Says: You're*
Minecraft: Phrozenbit
mc_server: Home server

Next

Return to Redstone