Prepare to feast your eyeballs on the most high-tech device ever constructed within the confines of the Xbox 360 version of Minecraft. I give you the foundation for my newest ALU, it is currently the most powerful design, that I have personally seen on MCXBLA, and can perform 9 logical functions:
Addition - Subtraction
AND - NAND
OR - NOR
XOR - XNOR
and NOT
Keep in mind this is only a 1-bit prototype and foundation for the 16-bit ALU which will be the muscle for my next computer. Without any further delay, SHAZAAM!!:
Notice the size difference to my inferior ALU in the background. (diamond blocks) It's hard to tell where one bit begins and one bit ends, but basically one of the X shapes is the width of a whole bit. The main difference is height, my new ALU may be spread out more lengthwise, but the volume isn't that much more than the old ALU. Considering this design is 5 times more powerful, I think that's quite impressive. The main reason it is so compact is because this device has the ability to invert inputs, it also has the ability to invert an output from any function. This means I can accomplish both addition and subtraction with the same adder.
Here is the other side, you can imagine the lines at the bottom of the photo being connected to program memory. The instructions are as follows, read from left to right:
Read ALU output
Adder output
Read ALU inverted output
XOR
OR
AND
Invert input B
Invert input A
The instruction set probably won't look like this when it's actually implemented in the next computer, I just kind of threw this together and that's how the instructions ended up. The final ALU version implemented won't look much like this, period. Yes, this demonstration model is extremely powerful, but it's also very slow. I've been working on designing an insta-carry adder that will speed this up a LOT, but there are other bad design elements in this device that make it not so quick like.
Here is a short demonstration for all of the functions. I'm not doing every possible input since that would take about 40 screenshots.
Every function will be processing two digits.
ADDITION:
^^^Inputs & Instructions^^^
^^^Output^^^
(Carry out on the left, sum on the right)
SUBTRACTION:
(Accomplished by inverting one input and NOTing the adder output)
^^^Inputs & Instructions^^^
^^^Output^^^
AND:
^^^Inputs & Instructions^^^
^^^Output^^^
(From this point on the carry out line is ignored)
NAND:
(Accomplished by NOTing the AND output)
^^^Inputs & Instructions^^^
^^^Output^^^
OR:
^^^Inputs & Instructions^^^
^^^Output^^^
NOR:
^^^Inputs & Instructions^^^
^^^Output^^^
(And a beautiful sunrise:))
XOR:
^^^Inputs & Instructions^^^
^^^Output^^^
XNOR:
^^^Inputs & Instructions^^^
^^^Output^^^
NOT:
(The NOT function only uses one input, this can be accomplished by sending one digit through the OR function or the XOR function, as these will reflect the single high input in their outputs. This output can then be NOTed, I will be using the output of the OR function for this demonstration.)
^^^Inputs & Instructions^^^
^^^Output^^^
Well there you have it. I'm pretty proud of this thing, despite the kinks I will need to work out to optimize speed. Something else worth mentioning about this design is, from the moment data is saved in the input register, the ALU calculates the result for every possible function. From that point, the next bit of program memory only needs to be coded to select the result of the function you are trying to process the values with.
No seriously I saw your youtube vid of the other one and this one definatly looks a lot smaller. I can see it's only 8 high and it looks 8 wide how long it's hard to tell since there is stuff going every which way.
Rollback Post to RevisionRollBack
I tried to sign my name here, but all I managed to do was ruin my computer screen.
No seriously I saw your youtube vid of the other one and this one definatly looks a lot smaller. I can see it's only 8 high and it looks 8 wide how long it's hard to tell since there is stuff going every which way.
It's actually 5 wide, the control lines don't count as part of the ALU, they're just for the program that will eventually control it. I just lined them up all neat so It was easier to remember which line did what without tracing it back every time.
New design: 35 x 5 x 7 = 1225 cubic meters
Old design: 24 x 3 x 8 = 576 cubic meters
Okay... so it's a bit bigger than I thought. xD But still, twice as big isn't bad when you factor in how insanely powerful it is. Jesus christ I'm so excited for creative mode.
It's actually 5 wide, the control lines don't count as part of the ALU, they're just for the program that will eventually control it. I just lined them up all neat so It was easier to remember which line did what without tracing it back every time.
New design: 35 x 5 x 7 = 1225 cubic meters
Old design: 24 x 3 x 8 = 576 cubic meters
Okay... so it's a bit bigger than I thought. xD But still, twice as big isn't bad when you factor in how insanely powerful it is. Jesus christ I'm so excited for creative mode.
ok so it has a bigger footprint but it seems like there are far fewer blocks then the previous model. some of that footprint isn't taken up by blocks so you will be able to sneak it in nice and tight with your other computer hardware. I mean the other one is almost a solid wall of blocks and redstone. no wonder this guy is faster you've probably cut way down on the number of torches and repeaters
Rollback Post to RevisionRollBack
I tried to sign my name here, but all I managed to do was ruin my computer screen.
Holy-- The most complex thing I've managed to make is a pseudorandom number generator based off of a linear shift register after peeking at a few pics and some trial and error, but this... I'm in awe, this is still way above my understanding of redstone.
ok so it has a bigger footprint but it seems like there are far fewer blocks then the previous model. some of that footprint isn't taken up by blocks so you will be able to sneak it in nice and tight with your other computer hardware. I mean the other one is almost a solid wall of blocks and redstone. no wonder this guy is faster you've probably cut way down on the number of torches and repeaters
One of the main reason the old ALU looks so thick is because I built a solid floor on top of the addition portion once it was finished. That way I could build adders for subtraction more easily. This new ALU design is actually slower, a good bit slower, but that comes naturally with the more functions you add. The input inverters also slow it down, it takes 2 ticks just to send an input normally, 3 ticks to invert a 0, and 3 ticks to invert a 1. If I wanted to, I could make this thing as fast as the old design, but it would be HUMONGOUS. So I'm going to try to make it as fast as possible, keeping it roughly just as compact. There is a good bit of empty space, but I've already sneaked in everything that needs to be there. From this state it can be tiled 15 more times with one meter gaps in between to make a VERY formidable heart to any CPU. But, I'm not satisfied yet, so it must be faster.
And it does have a much larger foot print, especially by area. But, here's where the new architecture I was telling you about comes in. Instead of the ALU output going onto a long writing bus, inverting, and then going to various locations of RAM. The memory will be directly above the ALU, locations stacked on top of each other, and the writing bus will split, going to every location. I may put two locations in front of each other, and stack two more on top, that would make it even more compact. I don't have a great plan on how the ROM or program memory will be implemented yet, but I have a couple of ideas.
Holy-- The most complex thing I've managed to make is a pseudorandom number generator based off of a linear shift register after peeking at a few pics and some trial and error, but this... I'm in awe, this is still way above my understanding of redstone.
Wait 'til you see 16 of these working together in a full computer with a GPU.
It's not that complicated in what it does, it's just complex in how it's built. It's pretty much every basic logic gate in one device. I don't see what's so hard to understand about it, if you know what all logic gates do then you know what this does. It's just meant to be a unit that can process data based on many logical functions. It's pretty much going to be the backbone that makes my next CPU very powerful.
This is amazing. Just like I said about your last CPU, I would not know a single thing i'm doing if I made something like this. Makes my brain hurt just thinking about it. I can make some decent piston stuff with redstone but not a CPU. Lol
This is amazing. Just like I said about your last CPU, I would not know a single thing i'm doing if I made something like this. Makes my brain hurt just thinking about it. I can make some decent piston stuff with redstone but not a CPU. Lol
It gets easier the more you build. Back when I built my first horrendous calculator I remember seeing redstone computers, thinking I would never be able to build something that amazing. Then I just dived in, learning how real computers work, and after about a month decided it was time to build one. My first CPU was never intended to be powerful, the ALU is about as basic as you can get. I just wanted to be the first guy with a Minecraft computer on 360. Just for comparison, my old ALU had 2 functions and could only output 256 different values, the new ALU will have 9 functions and be able to calculate 65,536 values.
It's really not that difficult, I would say 80% of the build is repetition. More of the same thing makes a computer more powerful. The main points when "brain work" comes in is with the architecture of the entire machine, and designing an ALU. Keeping everything compact can also be quite tricky. But the absolute most difficult part, imo, is getting the timing right. If the CPU's clock speed is off by one tick, or control inputs in other parts of the computer don't line up just right, it can crash the entire computer.
Intense once creative comes out i will attempt crazy projects like this
This isn't even the project, just the heart of it. In fact, it's only a small part of the heart of it. In fact, it's only a prototype of a small part of the heart of it. When this is ready to become a legit ALU, it will be significantly faster, the adders will carry over instantly, and 16 of these will be connected together, having the capability to calculate 65,536 different values. That will be the heart of it, and it won't even be the most high-tech piece of the computer. I plan on building a GPU that will blow some minds.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
-
View User Profile
-
View Posts
-
Send Message
Retired StaffAddition - Subtraction
AND - NAND
OR - NOR
XOR - XNOR
and NOT
Keep in mind this is only a 1-bit prototype and foundation for the 16-bit ALU which will be the muscle for my next computer. Without any further delay, SHAZAAM!!:
Notice the size difference to my inferior ALU in the background. (diamond blocks) It's hard to tell where one bit begins and one bit ends, but basically one of the X shapes is the width of a whole bit. The main difference is height, my new ALU may be spread out more lengthwise, but the volume isn't that much more than the old ALU. Considering this design is 5 times more powerful, I think that's quite impressive. The main reason it is so compact is because this device has the ability to invert inputs, it also has the ability to invert an output from any function. This means I can accomplish both addition and subtraction with the same adder.
Here is the other side, you can imagine the lines at the bottom of the photo being connected to program memory. The instructions are as follows, read from left to right:
Read ALU output
Adder output
Read ALU inverted output
XOR
OR
AND
Invert input B
Invert input A
The instruction set probably won't look like this when it's actually implemented in the next computer, I just kind of threw this together and that's how the instructions ended up. The final ALU version implemented won't look much like this, period. Yes, this demonstration model is extremely powerful, but it's also very slow. I've been working on designing an insta-carry adder that will speed this up a LOT, but there are other bad design elements in this device that make it not so quick like.
Here is a short demonstration for all of the functions. I'm not doing every possible input since that would take about 40 screenshots.
Well there you have it. I'm pretty proud of this thing, despite the kinks I will need to work out to optimize speed. Something else worth mentioning about this design is, from the moment data is saved in the input register, the ALU calculates the result for every possible function. From that point, the next bit of program memory only needs to be coded to select the result of the function you are trying to process the values with.
Any questions?
No seriously I saw your youtube vid of the other one and this one definatly looks a lot smaller. I can see it's only 8 high and it looks 8 wide how long it's hard to tell since there is stuff going every which way.
I tried to sign my name here, but all I managed to do was ruin my computer screen.
-
View User Profile
-
View Posts
-
Send Message
Retired StaffIt's actually 5 wide, the control lines don't count as part of the ALU, they're just for the program that will eventually control it. I just lined them up all neat so It was easier to remember which line did what without tracing it back every time.
New design: 35 x 5 x 7 = 1225 cubic meters
Old design: 24 x 3 x 8 = 576 cubic meters
Okay... so it's a bit bigger than I thought. xD But still, twice as big isn't bad when you factor in how insanely powerful it is. Jesus christ I'm so excited for creative mode.
still a noob to redstone but just got a clock on my own.
ok so it has a bigger footprint but it seems like there are far fewer blocks then the previous model. some of that footprint isn't taken up by blocks so you will be able to sneak it in nice and tight with your other computer hardware. I mean the other one is almost a solid wall of blocks and redstone. no wonder this guy is faster you've probably cut way down on the number of torches and repeaters
I tried to sign my name here, but all I managed to do was ruin my computer screen.
In english please.
-
View User Profile
-
View Posts
-
Send Message
Retired StaffOne of the main reason the old ALU looks so thick is because I built a solid floor on top of the addition portion once it was finished. That way I could build adders for subtraction more easily. This new ALU design is actually slower, a good bit slower, but that comes naturally with the more functions you add. The input inverters also slow it down, it takes 2 ticks just to send an input normally, 3 ticks to invert a 0, and 3 ticks to invert a 1. If I wanted to, I could make this thing as fast as the old design, but it would be HUMONGOUS. So I'm going to try to make it as fast as possible, keeping it roughly just as compact. There is a good bit of empty space, but I've already sneaked in everything that needs to be there. From this state it can be tiled 15 more times with one meter gaps in between to make a VERY formidable heart to any CPU. But, I'm not satisfied yet, so it must be faster.
And it does have a much larger foot print, especially by area. But, here's where the new architecture I was telling you about comes in. Instead of the ALU output going onto a long writing bus, inverting, and then going to various locations of RAM. The memory will be directly above the ALU, locations stacked on top of each other, and the writing bus will split, going to every location. I may put two locations in front of each other, and stack two more on top, that would make it even more compact. I don't have a great plan on how the ROM or program memory will be implemented yet, but I have a couple of ideas.
Wait 'til you see 16 of these working together in a full computer with a GPU.
It's not that complicated in what it does, it's just complex in how it's built. It's pretty much every basic logic gate in one device. I don't see what's so hard to understand about it, if you know what all logic gates do then you know what this does. It's just meant to be a unit that can process data based on many logical functions. It's pretty much going to be the backbone that makes my next CPU very powerful.
-
View User Profile
-
View Posts
-
Send Message
Retired StaffIt gets easier the more you build. Back when I built my first horrendous calculator I remember seeing redstone computers, thinking I would never be able to build something that amazing. Then I just dived in, learning how real computers work, and after about a month decided it was time to build one. My first CPU was never intended to be powerful, the ALU is about as basic as you can get. I just wanted to be the first guy with a Minecraft computer on 360.
It's really not that difficult, I would say 80% of the build is repetition. More of the same thing makes a computer more powerful. The main points when "brain work" comes in is with the architecture of the entire machine, and designing an ALU. Keeping everything compact can also be quite tricky. But the absolute most difficult part, imo, is getting the timing right. If the CPU's clock speed is off by one tick, or control inputs in other parts of the computer don't line up just right, it can crash the entire computer.
-
View User Profile
-
View Posts
-
Send Message
Retired StaffStart with the basics:
http://www.minecraftforum.net/topic/1472246-how-logic-gates-can-work-together/
-
View User Profile
-
View Posts
-
Send Message
Retired StaffThis isn't even the project, just the heart of it. In fact, it's only a small part of the heart of it. In fact, it's only a prototype of a small part of the heart of it. When this is ready to become a legit ALU, it will be significantly faster, the adders will carry over instantly, and 16 of these will be connected together, having the capability to calculate 65,536 different values. That will be the heart of it, and it won't even be the most high-tech piece of the computer. I plan on building a GPU that will blow some minds.