1
Redstone Computers [Official]
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:
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!
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!
Create an account or sign in to comment.
141
1
Well, I couldn't really say for sure lol. But making one does take quite a while
1
What sort of things does it do?
1
Mine currently does Addition, Subtraction, Multiplication, Division, OR, XOR, XNOR, AND, and NAND.
1
However, I have seen one on youtube that can play a very basic version of Minecraft!
1
Wow. A redstone computer is a big undertaking. About how long has it taken for you to make what you have so far?
1
sorry this may be a bit newbie but whats a redstone computer
1
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
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
wow i didnt even know that was possible that sounds cool
1
Woah nice!
1
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 ^^
Guess that's kinda computer-y ^^
1
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
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 ?
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
Oh. Sorry, didn't realise that was a rule :c
1
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.
This is considered necro posting and is against the rules, regardless of content.
1
Sup guys! We should really make this thread active again
1
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
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
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
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
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]
[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
Interesting, I got allot of learning to do if I need to catch up with you guys. I think it's impossible, actually.
1
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!
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
Let's make this thread alive again ^_^
1
Seems that this thread has died, you guys still out there ?
Exile, did you take a look at those wiki pages ?
Exile, did you take a look at those wiki pages ?
1
Right here, friend!
1
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
I'll give it a shot.
1
bump
1
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
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 : )
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
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
NoseJob for a CowboyPhrozenbit
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
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
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).
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
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.
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
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
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
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
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
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
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_algorithm11 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
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
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.
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
Wtf is a redstone computer ?
1
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 "
As a friendly note, you are violating one of the rules of this thread: " Read before you post "
1
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.
Go see for yourself.
1
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
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
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
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
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.
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.
view more replies ( 43 )