1

Redstone Computers [Official]

Phrozenbit's Avatar Phrozenbit5/14/12 11:36 pm
1 emeralds 5.2k 141
2/13/2013 10:57 am
PengoPenguinRocks's Avatar PengoPenguinRocks
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
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!
Posted by Phrozenbit's Avatar
Phrozenbit
Level 18 : Journeyman Miner
133

Create an account or sign in to comment.

141

1
02/12/2013 4:27 pm
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
Well, I couldn't really say for sure lol. But making one does take quite a while
1
02/12/2013 4:31 pm
Level 1 : New Miner
Jimmer93
Jimmer93's Avatar
What sort of things does it do?
1
02/12/2013 4:34 pm
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
Mine currently does Addition, Subtraction, Multiplication, Division, OR, XOR, XNOR, AND, and NAND.
1
02/12/2013 4:34 pm
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
However, I have seen one on youtube that can play a very basic version of Minecraft!
1
02/12/2013 4:14 pm
Level 1 : New Miner
Jimmer93
Jimmer93's Avatar
Wow. A redstone computer is a big undertaking. About how long has it taken for you to make what you have so far?
1
02/12/2013 12:04 pm
Level 24 : Expert Ninja
PengoPenguinRocks
PengoPenguinRocks's Avatar
sorry this may be a bit newbie but whats a redstone computer
1
02/12/2013 12:09 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
It's a Redstone device that's capable of performing binary arithmetic / comparison / operations.

With that binary data you can represent numbers or characters, or whatever you want, and perform things like adding / subtracting and displaying results to a screen build with Redstone lamps or pistons.

Also Read the first post. Will get you started if you're interested
1
02/13/2013 10:57 am
Level 24 : Expert Ninja
PengoPenguinRocks
PengoPenguinRocks's Avatar
wow i didnt even know that was possible that sounds cool
1
02/12/2013 11:50 am
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
Woah nice!
1
02/12/2013 11:49 am
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
I'm building this paint-screen device at the moment as well. It's 15 x 15 pixels. Going to add a blinking cursor en memory for at least 10 images. I'm giving the thing a general purpose input as well so something like a CPU's output can be stored to the video memory for later display or something. Doing this without WorldEdit and stuff, so buses are a drag. I'll upload the project as soon as it actually does something ( like move a cursor around the screen or something )

Guess that's kinda computer-y ^^
1
02/12/2013 11:44 am
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
Hmm... maybe a build with all of the members from this thread that want to? We could all make a redstone computer. Might be a little hard to organise though :/
1
02/12/2013 11:21 am
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Yeah, it's a bit unclear.

Anyway, if we don't get moderated we might as well start again..

so, what's on your mind then, any idea's on how to kickstart this thread ?
1
02/12/2013 11:03 am
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
Oh. Sorry, didn't realise that was a rule :c
1
02/11/2013 4:03 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Thread was considered dead, last post was more then a month ago.

This is considered necro posting and is against the rules, regardless of content.
1
02/11/2013 4:01 pm
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
Sup guys! We should really make this thread active again
1
12/05/2012 3:28 pm
Level 1 : New Engineer
CMOSprinkles
CMOSprinkles's Avatar
My avatar is actually just a display of fundamental digital circuits on a circuit board. I will definitely look into the lockable repeater RAM, I have already been considering using lockable repeaters for a shift register that can store multiple lines of memory in the D Flip-Flops. That project is still a daydream, and I suspect the inherent properties of the shift register will make it impossible to hold 'and' shift data, but the idea has played on my mind. I am going to do some personal research into vertical locked repeater applications and stacking methods, but I can already see how their use could compact the circuit. Thanks for the advice on that one! Also, the MUX design I am working on won't take very long at all, I'll try to put something up when I get home today.
1
12/05/2012 3:14 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
CMOSprinkles
Thank you very much! I will hopefully have time to flesh out the RAM this week, I plan to make a nice compact stackable RAM based on the current memory system being used by my ALU. Which I have realized recently is not comprised of D Flip-Flops, but actually vertical RS NOR Latches. Either way, I will be stacking them to hopefully create a compact system of RAM that will be expandable. I have already designed a few components. For example, I plan to use the instant vertical transmission of glowstone to create a compact MUX for the output selector, and I will probably use similar methods for the write to memory lines. Keep an eye out, you may see a new compact form of RAM out there soon


I will do that You could also try and build a very compact RAM with the new lockable repeaters. I've got a submission on that, It's really easy to see how to build that from the screenshots alone. Makes for perhaps even more compact RAM systems.

I'm keeping an eye out for the MUX, I'm also interested in that.

Is that some sort of synthesizer of sequencer type device you have as an avatar ?
1
12/05/2012 3:05 pm
Level 1 : New Engineer
CMOSprinkles
CMOSprinkles's Avatar
PhrozenbitWait that's awesome, just looked. It's really compact indeed, and looks very good! I'm going to subscribe because I want to see more! Great job!


Thank you very much! I will hopefully have time to flesh out the RAM this week, I plan to make a nice compact stackable RAM based on the current memory system being used by my ALU. Which I have realized recently is not comprised of D Flip-Flops, but actually vertical RS NOR Latches. Either way, I will be stacking them to hopefully create a compact system of RAM that will be expandable. I have already designed a few components. For example, I plan to use the instant vertical transmission of glowstone to create a compact MUX for the output selector, and I will probably use similar methods for the write to memory lines. Keep an eye out, you may see a new compact form of RAM out there soon
1
12/05/2012 2:42 pm
Level 1 : New Engineer
CMOSprinkles
CMOSprinkles's Avatar
Hello! Since this is a computer thread, I thought it would be useful to advertise my new ALU here for computer builders! Currently, it is a 6 function ALU with the functions AND, OR, XOR, XNOR, ADD, SUB. More functions will be coming soon, including NOR, SHIFTL&R, and hopefully Multiply/Divide! It is based on 2-wide, one bit modules, so it can be as many or as few bits as you need. The current version includes one line of memory, but soon it will feature multiple lines of RAM! Though, what I feel really separates it from other ALU's is how compact it is. An 8 bit module with one line of memory fits in 28Lx19Wx17H, or roughly 9,000 blocks of space, as opposed to 12,000+ for other ALU designs I have seen. Obviously it will become larger once I add more RAM and functions, but I still plan to keep it compact! Take a look and let me know what you think so far, the full 8 function version with RAM is coming soon!
1
12/05/2012 2:49 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Oh that's awesome I'm on a break currently so i'm not building anything and will not be active for a month after I've tied some things up today. I'll have a look when it's uploaden

[edit]

Wait that's awesome, just looked. It's really compact indeed, and looks very good! I'm going to subscribe because I want to see more! Great job!

[/edit]
1
12/04/2012 8:40 pm
Level 15 : Journeyman Engineer
exilepilot
exilepilot's Avatar
Interesting, I got allot of learning to do if I need to catch up with you guys. I think it's impossible, actually.
1
12/04/2012 8:38 pm
Level 20 : Expert Cowboy
NoseJob for a Cowboy
NoseJob for a Cowboy's Avatar
I'm still here, just lacking in free time lately. Finally found a job, but I'm working 10 hour shifts. The past couple weekends have been mostly spent looking for a truck. 4th time's the charm, right?

I have done some work on my CPU, but haven't made it very far. I'll update when I've made significant progress, which means after I've finished implementing general purpose registers... all 16 locations... 16 bits in length... 256 D flip flops... built by hand. x_x The good news is they're dual-read designs and I'll be using two reading buses, so sending two values, from any of the registers, through the ALU can be done in a single cycle instead of two, 100% more efficient than my first CPU!
1
12/03/2012 3:00 pm
Level 15 : Journeyman Engineer
exilepilot
exilepilot's Avatar
Let's make this thread alive again ^_^
1
12/03/2012 1:54 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Seems that this thread has died, you guys still out there ?

Exile, did you take a look at those wiki pages ?
1
12/03/2012 3:57 pm
Level 24 : Expert Dragonborn
RM_Epic
RM_Epic's Avatar
Right here, friend!
1
12/03/2012 4:35 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
I got some idea's. I'm downloading this program that's mentioned above, and post up some schematics, to see if anyone can build it in Minecraft It will be computer related so it can get complex though. Maybe Zaubara can simplifi some circuits
1
12/03/2012 7:46 pm
Level 24 : Expert Dragonborn
RM_Epic
RM_Epic's Avatar
I'll give it a shot.
1
12/03/2012 1:26 pm
Level 15 : Journeyman Engineer
exilepilot
exilepilot's Avatar
bump
1
11/03/2012 7:29 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
RevolutionalRedStoneI feel like i can tell so much about you very skilled Redstoners just by hearing you banter.


I like your choice of words, and you're right. I bet you've seen your share of banter to know what's going on inside our brains

RevolutionalRedStoneZaubara is clearly a different breed, i remember his instruction set as powerful and wide, his devices as robust and his RAM as duel-read : )


I really like zaubara's work, and how he approaches Redstone engineering with real world logic designs. That is something I'd like to develop further for myself one day. I've had the honors of receiving a few logic diagrams from him now, and love e'm

RevolutionalRedStonePhrozenbit tackles Redstone like a programming challenge; abstractly from top-down using very dense instructions, with syncronous devices.


That's true, now that you mentioned it. I never realized it myself, but it felt natural for me to approach Redstone engineering that way. Synchronousness is just awesome, have to hand in a couple of performance ticks for that, but it just feels good to know that the byte is there instantly.

RevolutionalRedStoneNoseJob for a Cowboy has some good aspects from both of you, hes very grounded in mathematics and engineering, his bussing is very concise like zaubara, but hes also not affraid to bend or skew a design if theres key data-path performance at stake; like Prozenbit.


I guess I also have some influences of you, and zaubara ( Laurens Wayne inspired me to do this type of Redtone engineering, Salaja inspired me to use a dense instruction set ). I've been learning a lot from you guy's, although be it silently i most cases I like how nosejob is strong with math, that is definitely something I could improve on as well.

RevolutionalRedStoneI must say; nice work on your Mark-III thusfar, that ALU project is one of the best Redstone pages on PMC, you really went over and above expectations for a write-up; someone could build a working CPU from your projects info alone !


Thanks ^-^ I thought I'd put a little more effort in explaining things to make these kind of projects a bit more understandable and accessible for those on PMC who are taking interest in this, and are willing to learn about this type of Redstone engineering. I'm not completely satisfied with the results tough, I missed the function encoder behind the panel, and want some more programs on there.. Overall i should not complain I guess.

RevolutionalRedStoneyou have all been covering really interesting stuff.. HardDisc address seeking and ALU multiplication functionality are interesting subjects ! ... ive come to the conclusion that it's best to do both in software.


Ok, you've just triggerd me into getting back at the HardDisc address seeking ( I also need to get my version of 'capacity' back up again ). Nosejob has advanced in that as well, on the Xbox which is even more awesome. I need to learn more about the multiplication algorithm though before I'm writing such a program. I don't understand the algorithms enough yet. I nailed that Fibonacci procedure though ^-^ but that's easy.

RevolutionalRedStoneIn both cases increases in performance from hardware implementation is over-shadowed by device size they are also really great examples of potencial computer software applications which are both feasble and useful to implement in Redstone : )


Had to read this a couple of times to understand this, but I agree. Zaubara has built some interesting multipliers I've yet to figure out. The fact they are big does not necessarily means that it's slow. He's using instant adders, which are basically the fastest carry adders Redstone has to offer, however it wouldn't fit neatly in a very compact CPU design.

I guess that's where the software version comes in. A downside to that obviously is that programs get significantly longer because of all the intermediate multiplication steps that need to be taken, within a program that requires multiplication.

Thanks for dropping in with those kind words, really inspiring and motivating. I'll be working on my Mark-III CPU soon, may take a while for me to get started again though. I've been looking at new memory technology since the new 1.4.2 release of MC, and the Lockable repeaters. They show great promise in very compact RAM designs. I've also managed to get started on a somewhat big PHP / MySQL webdev project with a couple of guys, so that's been keeping me busy as well as mundane work for clients..

My shoulders are starting to hurt now so I'm going to stop writing after I've said: good to hear from you again Revolutional
1
11/02/2012 5:28 pm
Level 53 : Grandmaster Pirate
RevolutionalRedStone
RevolutionalRedStone's Avatar
I feel like i can tell so much about you very skilled Redstoners just by hearing you banter.

Zaubara is clearly a different breed, i remember his instruction set as powerful and wide, his devices as robust and his RAM as duel-read : )

Phrozenbit tackles Redstone like a programming challenge; abstractly from top-down using very dense instructions, with syncronous devices.

NoseJob for a Cowboy has some good aspects from both of you, hes very grounded in mathematics and engineering, his bussing is very concise like zaubara, but hes also not affraid to bend or skew a design if theres key data-path performance at stake; like Prozenbit.

I must say; nice work on your Mark-III thusfar, that ALU project is one of the best Redstone pages on PMC, you really went over and above expectations for a write-up; someone could build a working CPU from your projects info alone !

you have all been covering really interesting stuff.. HardDisc address seeking and ALU multiplication functionality are interesting subjects ! ... ive come to the conclusion that it's best to do both in software.

In both cases increases in performance from hardware implementation is over-shadowed by device size they are also really great examples of potencial computer software applications which are both feasble and useful to implement in Redstone : )
1
10/28/2012 1:12 pm
Level 20 : Expert Cowboy
NoseJob for a Cowboy
NoseJob for a Cowboy's Avatar
Phrozenbit

I use Debian 6 Squeeze with an AMD64 kernel. I have the generic Java form the non-free APT repository, so i should be fine then

Thanks for the info on that, I've always wanted to learn more about digital logic, ever since I got a few basics about it while I was studying electronic engineering a while back.


No problem! I guess I should have noticed you were a Debian user from your little "console user" banner thing there.

I like playing with Logisim from time to time, quite a nifty little tool. I've been neglecting it lately, but these last few posts have motivated me to start messing with it again. I thought about building a full CPU within the program, just for the hell of it. Somewhere along the line I kind of forgot about it. When I get back home I think I'll start that as a side project.
1
10/28/2012 12:33 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
NoseJob for a Cowboy
Phrozenbit
Thanks for the advice on Logisim, it looks really promising, and I have been looking for this sort of programs. Once i figure out how to run this on Linux with Wine I'm going to start playing around with it, see if I can design something of my own.


It's easy peasy. All you need is Java, (later than 5 I think) Linux Mint 13 already comes with Java 6, not sure what distro you're using. Then just download the generic .jar file for Logisim and run it with Java.

java -jar logisim-XX.jar

For the version I'm using, which is the latest, it would be:

java -jar logisim-generic-2.7.1.jar


I use Debian 6 Squeeze with an AMD64 kernel. I have the generic Java form the non-free APT repository, so i should be fine then

Thanks for the info on that, I've always wanted to learn more about digital logic, ever since I got a few basics about it while I was studying electronic engineering a while back.
1
10/28/2012 12:13 pm
Level 20 : Expert Cowboy
NoseJob for a Cowboy
NoseJob for a Cowboy's Avatar
Phrozenbit
Thanks for the advice on Logisim, it looks really promising, and I have been looking for this sort of programs. Once i figure out how to run this on Linux with Wine I'm going to start playing around with it, see if I can design something of my own.


It's easy peasy. All you need is Java, (later than 5 I think) Linux Mint 13 already comes with Java 6, not sure what distro you're using. Then just download the generic .jar file for Logisim and run it with Java.

java -jar logisim-XX.jar

For the version I'm using, which is the latest, it would be:

java -jar logisim-generic-2.7.1.jar
1
10/26/2012 10:33 am
Level 36 : Artisan Ninja
zaubara
zaubara's Avatar
I ever wanted to build that too sometime But now that you're already building this, I'll use yours

Instead of the comparator, there's a much easier way to check for numbers >4:


You can simplify such functions (generally every logic table) using Karnaugh-Vein diagrams. The open source tool LogiSim (which I use to draw these schematics) does this job for you (I'll simplified it a bit more to match Minecraft's logic, in reality, the gate outputs are ORed, but in minecraft you can simply use a wired OR).
1
10/28/2012 11:24 am
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Oh that's really nice Makes it even more compact. I also figured that the first logic diagram could also be used as an 'equal to' By just hooking up the XOR's and invert that output.

Thanks for the second diagram I'm going to build them both today and see how it turns out. May I post them up to my profile ? I'll be sure to give you the credits for designing them

Thanks for the advice on Logisim, it looks really promising, and I have been looking for this sort of programs. Once i figure out how to run this on Linux with Wine I'm going to start playing around with it, see if I can design something of my own.
1
10/24/2012 11:59 am
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Thanks Now i can kind of continue with my Double dabble machine. I have had that idea for a while, as a large scale decoding project. I'm attempting to convert binary to binary coded decimal. That way encoding base 10 digits will not be such a hassle.
1
10/23/2012 5:39 pm
Level 36 : Artisan Ninja
zaubara
zaubara's Avatar
PhrozenbitWhen you have some spare time, could you draw me a logic diagram for a 4 bit greater than comparator circuit ? I'll credit you the whole Redstone device when it's built.


Sure!

1
10/23/2012 3:15 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
zaubara
Please feel free to ask Shortly said, it compares the numbers bit-wise, but only the most significant bit that differs from the second number is decicive.


When you have some spare time, could you draw me a logic diagram for a 4 bit greater than comparator circuit ? I'll credit you the whole Redstone device when it's built.
1
10/23/2012 3:50 am
Level 36 : Artisan Ninja
zaubara
zaubara's Avatar
PhrozenbitIt's a nice compact comparator that's fast. It works good, and I can not build one myself . I've been trying to build only the 'greater than' part from your logic diagram for another project I'm experimenting on. I feel I miss out on some education on the subject of digital logic.. so it's giving me headaches at the moment


Please feel free to ask Shortly said, it compares the numbers bit-wise, but only the most significant bit that differs from the second number is decicive.

NoseJob for a CowboyI don't really want an internal function for multiplication. For one, I've already built the ALU and it would be a bitch to squeeze in. And for another thing, it would most likely slow down my clock when I get around to building program memory and a counter. My ALU can pull off a full ripple carry in 13 ticks btw. Sadly, my A > B detection for the comparator is extremely slow. When the MSB's A input goes high, it takes the comparator a full 36 ticks to negate the lesser B inputs. I'm pretty sure this will be the limiting factor when it comes to my clock speed.

But, I don't really care about performing multiplication being slow. As long as it's an algorithm my ALU can perform externally, with minimal modifications, I could honestly care less how many steps are required. I basically want it for the fun of writing the program, I don't care about the function itself all that much.


I think, the multiplier will not be the only speed limiting factor in my CPU, but I'll see when I put everything together. On the other hand, it's the slowest part of the ALU - but like it's done by some existing microcontrollers (which I take is inspiration), that have a HW-multiplier, I want to give the multiplication 2 CPU cycles to complete the operation. That way, I have the advantage of a HW-multiplier, which will always be faster than multiplying by software (regarding arrays etc, multiplication is an often used and crucial operation), but it does'nt slow down the rest of the ALU.
For the multiplier itself, there are some optimizations possible, like faster algorithms (Dadda tree, Booth) or faster instant-carry-adders.
1
10/21/2012 8:01 pm
Level 20 : Expert Cowboy
NoseJob for a Cowboy
NoseJob for a Cowboy's Avatar
Phrozenbit
Well, I have not figured that out yet. You could always try and build something like this: http://www.planetminecraft.com/project/fast-8bit-signedunsigned-multiplier-using-instant-carry-adders/ But that's also not very fast, and your ALU will get quite large.

I'll check back on this as soon as I figure something out on my CPU when it's done. I'm sure someone else will jump in on this eventually though.

How's the project coming ?


It's good, and the ALU is finally complete, I still need to update the page though. My thread on MCF is nice and up-to-date though!

http://www.minecraftforum.net/topic/152 ... megabuild/

I don't really want an internal function for multiplication. For one, I've already built the ALU and it would be a bitch to squeeze in. And for another thing, it would most likely slow down my clock when I get around to building program memory and a counter. My ALU can pull off a full ripple carry in 13 ticks btw. Sadly, my A > B detection for the comparator is extremely slow. When the MSB's A input goes high, it takes the comparator a full 36 ticks to negate the lesser B inputs. I'm pretty sure this will be the limiting factor when it comes to my clock speed.

But, I don't really care about performing multiplication being slow. As long as it's an algorithm my ALU can perform externally, with minimal modifications, I could honestly care less how many steps are required. I basically want it for the fun of writing the program, I don't care about the function itself all that much.
1
10/21/2012 5:57 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
NoseJob for a CowboyWell, I've reached a conundrum here, guys. I've been looking at some multiplication algorithms and see some issues. The one I'm particularly interested in is Peasant multiplication. This is easy enough on paper, but I see some issues.

Here is an example for 11 x 3 from Wikipedia:
http://en.wikipedia.org/wiki/Multiplication_algorithm

11 and 3 are written at the top
11 is halved (5.5) and 3 is doubled (6). The fractional portion is discarded (5.5 becomes 5).
5 is halved (2.5) and 6 is doubled (12). The fractional portion is discarded (2.5 becomes 2). The figure in the left column (2) is even, so the figure in the right column (12) is discarded.
2 is halved (1) and 12 is doubled (24).
All not-scratched-out values are summed: 3 + 6 + 24 = 33.


The first problem is this would be extremely slow, but that's not really what I'm concerned with. The only way I can see to do this is to write a program specifically for the numbers I'm using as input. I'm just wondering if there's a more universal algorithm out there that would work with any two inputs without any changes to the process. In Peasant multiplication, the larger the numbers, the more steps it takes. I just need something a bit more simple that requires the same steps for any input.

Here's another one I've been looking at:



This seems pretty simple, I could AND 16 1's with the data to multiply by one, or AND 16 0's adversely. But how will my computer separate the second input into individual digits? And how will my ALU know what to do with the data depending on the second input?

EDIT: The cut off words in the second photo just say left, every step requires a left shift. I guess I didn't edit the screenshot to a small enough size.


Well, I have not figured that out yet. You could always try and build something like this: http://www.planetminecraft.com/project/fast-8bit-signedunsigned-multiplier-using-instant-carry-adders/ But that's also not very fast, and your ALU will get quite large.

I'll check back on this as soon as I figure something out on my CPU when it's done. I'm sure someone else will jump in on this eventually though.

How's the project coming ?
1
10/20/2012 6:26 pm
Level 20 : Expert Cowboy
NoseJob for a Cowboy
NoseJob for a Cowboy's Avatar
Well, I've reached a conundrum here, guys. I've been looking at some multiplication algorithms and see some issues. The one I'm particularly interested in is Peasant multiplication. This is easy enough on paper, but I see some issues.

Here is an example for 11 x 3 from Wikipedia:
http://en.wikipedia.org/wiki/Multiplication_algorithm

11 and 3 are written at the top
11 is halved (5.5) and 3 is doubled (6). The fractional portion is discarded (5.5 becomes 5).
5 is halved (2.5) and 6 is doubled (12). The fractional portion is discarded (2.5 becomes 2). The figure in the left column (2) is even, so the figure in the right column (12) is discarded.
2 is halved (1) and 12 is doubled (24).
All not-scratched-out values are summed: 3 + 6 + 24 = 33.


The first problem is this would be extremely slow, but that's not really what I'm concerned with. The only way I can see to do this is to write a program specifically for the numbers I'm using as input. I'm just wondering if there's a more universal algorithm out there that would work with any two inputs without any changes to the process. In Peasant multiplication, the larger the numbers, the more steps it takes. I just need something a bit more simple that requires the same steps for any input.

Here's another one I've been looking at:



This seems pretty simple, I could AND 16 1's with the data to multiply by one, or AND 16 0's adversely. But how will my computer separate the second input into individual digits? And how will my ALU know what to do with the data depending on the second input?

EDIT: The cut off words in the second photo just say left, every step requires a left shift. I guess I didn't edit the screenshot to a small enough size.
1
10/20/2012 5:23 am
Level 23 : Expert Explorer
jayjaymozza
jayjaymozza's Avatar
Wtf is a redstone computer ?
1
10/20/2012 5:27 am
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
I suggest you read the fist post, and some other posts in this thread, as this question has been answered already.

As a friendly note, you are violating one of the rules of this thread: " Read before you post "
1
10/20/2012 5:27 am
Level 3 : Apprentice Miner
Ripplier
Ripplier's Avatar
A Redstone computer is a secret block you craft with 8 diamonds surrounding a redstone ore block, It is NOT in creative mode.

Go see for yourself.
1
10/20/2012 3:21 am
Level 18 : Journeyman Narwhal
BeatTheRestGaming
BeatTheRestGaming's Avatar
I've just begun work on my first publicly available redstone computer . I have made a few test computers before, but none have been published to PMC. Currently the maximum number the adder can add up to is 130,175. Do you guys think this is too small, or too big? Shall I make the adder able to add up to even higher numbers?
1
10/19/2012 5:32 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
zaubara

Thanks for explaining this Does the IS also support constants (4 bit)?
I am glad my work is useful for your creations, that keeps the motivation to continue



I have not thought about constants, so it will not support them.

It's a nice compact comparator that's fast. It works good, and I can not build one myself . I've been trying to build only the 'greater than' part from your logic diagram for another project I'm experimenting on. I feel I miss out on some education on the subject of digital logic.. so it's giving me headaches at the moment
1
10/19/2012 2:30 pm
Level 20 : Expert Cowboy
NoseJob for a Cowboy
NoseJob for a Cowboy's Avatar
zaubara
It's impressive your doing that without the help of an editor, this must be a real challenge sometimes...

I wouldn't call it a challenge, it's just very redundant and makes the build take at least twice as long. Pretty much copying the same thing over and over, block by block. It's not nearly as bad now that we have creative mode though. I hope eventually 4J will release DLC similar to WorldEdit. A lot of people support the idea so I think it will be one of the first real DLC's released once they have some time to focus on things besides updates.

EDIT: http://www.planetminecraft.com/project/project-xenon/
1
10/19/2012 2:16 pm
Level 36 : Artisan Ninja
zaubara
zaubara's Avatar
PhrozenbitI will use a fixed 8 bit instruction set, the most significant nibble will be the ALU functions, and the least significant wil be the RAM adresses.

I just realized however, that most of the ALU functions won't even need a RAM address, only loading values in the ALU's temporary registers would require a RAM address, same as saving the ALU's output in RAM. The unconditional branch, and conditional branching where I use your magnitude comparator for require a program memory address, which is also going to be four bits. It seems I have some additional space left while calling an ALU function that processes the values in the temporary ALU registers.

I just use a 4 bit wide decoder for the function enablers on the ALU, and a 4 bit wide decoder on the RAM address / register controllers. I plan on making the program memory and it's data paths synchronous, and hook up its output directly to the function decoders and RAM address decoders. Iterating through the program memory using a binary counter with branching capability hooked up to the program memory's address decoder should take care of running a program.


Thanks for explaining this Does the IS also support constants (4 bit)?
I am glad my work is useful for your creations, that keeps the motivation to continue

NoseJob for a CowboySpeaking of which, I've officially started on Project XENON, which is the codename of my new computer. The title pays homage to the Xbox 360 console, which uses a custom CPU designed by IBM, which is named Xenon.

So far, all I've built is a full 16-bit comparator and one bit of the rest of the ALU. Kind of put the kabosh on it after that. It's irritating building the same thing over and over again. I'll probably start a project page on it tomorrow.


It's impressive your doing that without the help of an editor, this must be a real challenge sometimes...
1
10/18/2012 10:06 pm
Level 20 : Expert Cowboy
NoseJob for a Cowboy
NoseJob for a Cowboy's Avatar
Speaking of which, I've officially started on Project XENON, which is the codename of my new computer. The title pays homage to the Xbox 360 console, which uses a custom CPU designed by IBM, which is named Xenon.

So far, all I've built is a full 16-bit comparator and one bit of the rest of the ALU. Kind of put the kabosh on it after that. It's irritating building the same thing over and over again. I'll probably start a project page on it tomorrow.
Planet Minecraft

Website

© 2010 - 2024
www.planetminecraft.com

Welcome