[Minecraft Computer Engineering] - Quad-Core Redstone Computer v5.0 [12k sub special!]

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

How long before we can run minecraft on minecraft?

Or how long until one of these things computes a bitcoin hash?

👍︎︎ 48 👤︎︎ u/beemoe 📅︎︎ Mar 08 2019 🗫︎ replies

This is pretty interesting, because while he gave the computer multiple cores, it seems like the software and the system are too "primitive" to really utilize them. He seems to be loading different programs into the different cores, but can't run them simultaneously (probably because they would try to write to the screen simultaneously). I don't know if he has added any fencing/coordination primitives yet that would allow you to really make the cores coordinate. Clearly the system is also still too slow to support running something that resembles some sort of interactive operating system that would allow you to start these processes on these different cores from within it.

Makes me think that it was probably a lot like this with real chips as well -- there was a point at which multi-cores and threading started to make sense, but it was really not until much much later in computing history. If you run a heterogenous set of processes, you also first need some sort of software and interface paradigm to interact with these -- even DOS couldn't quite do that yet.

👍︎︎ 3 👤︎︎ u/jringstad 📅︎︎ Mar 10 2019 🗫︎ replies

what is this running?

edit: on what is this running, lol.

👍︎︎ 6 👤︎︎ u/intheprog 📅︎︎ Mar 08 2019 🗫︎ replies

Wow cool

👍︎︎ 1 👤︎︎ u/alexmijowastaken 📅︎︎ Apr 22 2019 🗫︎ replies
Captions
[Music] hey guys Lego masa 99 again today and today I am here to finally show you guys after over 2 years my brand new redstone computer now I have been hinting this all over the place for the longest time and I know it's literally taken forever for me to get this out to you guys but I am finally doing it they just finally finished and I am excited to show you guys what this new computer can do hopefully you guys liked that little montage that I put together showing some of the redstone computer version 5.0 x' components and we will see all of those and I will explain it and show it off in a quick minute alright so you guys might be wondering you know it's been over 2 years what have you been doing with this computer what has changed has anything gotten better those kinds of questions and the answer is yes to all of them actually is it yes to all of them well regardless this computer is better in every single way and yes so let's go ahead and talk about some of the major differences with this computer architecture early and with the design philosophy and all that stuff compared to the rights to computer 4.0 alright so one of the first major big differences with this computer compared to the register computer 4.0 and my other redstone computers is that I've tried to compact it and make this computer as small as possible while adding as many features as possible and making it as fast as possible so let's just go ahead and take a look at the computer so I've shown you guys or you guys have seen the user input panel here and we will talk more about that in a few minutes but let's just go ahead and get a little overview here so this is the entire computer if I back out here a little bit so here it is the redstone computer 5.0 and you guys might notice that it is a little bit smaller than the redstone computer 4.0 if you're looking at it from the surface there's always that little but there so if we go ahead and drop down into these into the spaghetti of wiring here you will see that it is a lot more compact and there is a lot more going on here and then compared to the rest computer 4.0 since when I was developing this computer when I started developing in a couple years ago it's one of the things that I saw that the rights to computer 4.0 was very flat and it was very it was it took up a lot of area but it didn't really use that area very wisely so I tried to address that here and I think I have done a pretty good job at it because there was a lot less space in here and everything is more compact which means you will have faster performance which you guys will see and a lot of other architectural benefits as well the register computer version 5.0 is remarkably similar to its older brother the register computer 4.0 while changing up a lot of things and adding a lot more features this computer is still 8-bit all my mother computers so far have been 8-bit and this is a quad core computer I'm just like all my other redstone computers that I have shown on this channel so we have we can see one core here another one here and then three and then four these are the massive program memory blocks alright so the next thing that has changed dramatically with the rights to computer 5.0 compared to the rights of computer 4.0 is the layout of the multi-core structure and how those cores interact with each other in the right side computer 4.0 world with each core while you still had a lot of freedom with those cores and what you could do with them they were still sort of locked down in a way the speed of all of the cores was connected to the user input panel on the right so computer 4.0 so that meant all cores had only one they shared the exact same speed and you could you could not control whether the cores were on or off at certain times in the program or whether they were executing code or not you had to turn on the core at the beginning of the program for it to execute and then you potentially waste cycles if you were using multiple cores in your program but that has completely changed with the rest of computer 5.0 the cores of this computer are designed to be a lot more independent compared to its older brothers the Wrights computer 3.0 4.0 because each one of these cores now can set their own speed independent of all the other cores and it can also turn on and off other cores from that core so then that means that you don't have to be running cores unnecessarily you can start them when you need to and then stop their execution when it is necessary as well to ensure smoother and more efficient performance now the program memory on this computer has also been vastly improved compared to the previous rights of computers I have created this can this computer specifically each core has double the amount of program memory compared to the rights to computer 4.0 whereas the rights computer 4.0 had 63 lines of code with an 84 bit instruction word per line of code now the rights to computer 5.0 this version has 128 lines of code as you can see right here this huge block this is 128 lines of code with about 48 bits per instruction word the instruction set for this computer has also been vastly trimmed down and reduced compared to previous generations of these redstone computers which means programs will be able to run a lot more efficiently and with all of my rights the computers that I have developed thus far this instruction set is compatible with the arcus language specification that I have developed in the past year or so and it is also compatible with the DRC hll C compiler project which means that you can write programs in Arcis and then compile them for this computer and upload it to this computer so you can run programs on here this computer also has an enhanced suite of i/o compared to my previous redstone computers and as you can see here we have a display right here this is a 15 by 15 resolution display so a total of 225 pixels that we can draw on this display we have a decimal display here we have a raw binary display here this computer also contains a data port just like the register computer 4.0 and 3.0 but instead of it being parallel it is now serialized for much more efficient data communication and data transfers so we have our serial input port here where you can send in serialized data and then over here we have our serial output port where you can I guess export send transfer your serialized data to external peripherals and components that you can hook up to this computer this version also has a much more efficient random number generator which is right here used to generate random numbers for programs and this is a new addition to the redstone computer version 5.0 we have a 31 byte stack which is in the back right here now this is a unique type of stack at this as this is a hardware stack and people familiar with computer science will know that you can't really have a quote-unquote hardware stack it's just a data model within RAM but I have included here 31 bytes of a hardware stack so you can push data onto it and then you can pop data back out while on the topic of memory we also have 31 bytes here of dual read enhanced Ram I'm gonna call it a ram and the reason why I call it a ram is because our compared to regular Ram is because as you can see here it's a lot more square so if we see here it's this so we have the RAM modules in the middle here we have four RAM modules I'll just call them brand modules they're dual read just like the register computer 3.0 and 4.0 but it has been designed in such a way as to where the the data differential is minimal so the access times to read any byte of data in this array is essentially the same compared to the rights to computer for point on a 3.0 where the RAM was super long and if you were trying to read information at the very end of the RAM it would take a lot longer for the data to travel around the computer so with the stack and the enhance RAM combined you have 62 bytes of available addresses that you can address through these ones you can address randomly and these addresses here you have to push and pop which means you can't access them randomly each core on this computer also has 8 bytes of dual read cache and this is extremely helpful in speeding up programs and making them more efficient because as we can see here is the cash and the ALU is right over here it's this orange circuit right here or multiple circuits but it's this orange region over here and the proximity of the cache to the ALU here for processing makes it so much faster compared to using regular Ram because when you want to read an address from you have to go through the master output bus which is this huge white bus here let me see if I can get a better picture of it let's go over here so here's the master output bus and white and this bus connects all of the components of the computer together now and this design model has been used in previous computers that I have designed but it takes a lot longer to retrieve data from RAM compared to the cache that means that it is very recommended to use the cache to speed up programs this computer also implements a new register based data model for accessing internal peripherals and components which enables us to do things such as updating the speed per course since there is a dedicated speed register on each core that you can write values to to update the speed as well as I call it the go to register the line of code register but it is more formally known as the program counter register the PCR and each one of these cores has a program counter register and you can write specific values from the program into that register to change the line of code that the program is on now you did not have this level of granularity and flexibility with previous redstone computers but this new register model has made that possible now moving on to the GPU here the plotter this is based on the same design as the previous register computer 4.0 here we have a 15 by 15 screen here which gives us a total real estate of 225 pixels on this screen and we have the same vram model right here as the register computer 4.0 but and it also has the same function such as drawing points erasing points and the granular system which I will explain in a quick minute but I have also vastly optimized this GPU or the plotter compared to the rights of computer 4.0 this GPU also supports the GPU granular system that is seen in the Red Sea computer 4.0 which basically allows you to send huge amounts of screen data to this screen at once to allow updating of massive parts of the screen compared to drawing individual pixels to create an image and we will see that in a moment some of the demo programs that I'm going to show you guys alright so let's talk about this user input panel here for a little bit so this control center here essentially is all you need to execute programs and to send data into programs and to control any sort of program from here without doing extensive debugging and we have all of the same components from previous redstone computers so over here we have the computer power controls we have our on sleep and off and essentially this just turns on the computer and starts up cores that are enabled this will put those cores to sleep basically stop the cores from updating their program counter registers and stop the clock from updating them and then the off signal will shut off all the cores reset the RAM reset all the internal registers and that sort of thing now over here we have the speed control system and this is a little different compared to previous generations of the writing of Peters so we do have the same three bit speed code here we call it a speed of code and what you can do is that you enter in the speed code in binary and then you press this update speed register button and that will write this speed code to the speed register on whichever course you have enabled over here we have the core toggling space here and essentially this is where you can toggle which cores that will start at the beginning of the program and you got we will see that in a minute and then we also have our toggling the random number generator here as well here we have some computer inputs that you can send into the computer and the computer can check basically hey did the user acknowledge this input that the user do this do they user do that you can do that through this section here now this here simply is an 8-bit panel to enter in any sort of data that a program might need whether it be a number or an encoded coordinate or encoded data or anything like that it can be entered in right here now these are the various program status indicators so here we have eight programmable indicators that programs can use to tell the user of certain things then we have a carry out indicator here too basically this will turn on whenever any ALU has their carry out signal or their carry flag set in the status register of core and then here we have a stack overflow indicator and that basically tells the computer and the user if the 31 bytes stack that is behind this screen here is full and over here we have some reset option this is pretty self-explanatory this will clear the RAM and stack on shutdown these are just simple T flip-flops here that we can toggle and then this will clear all of the displays so when we mean displays we're talking about everything on this huge panel here and then you can reset each one of those displays individually up at the top here we have some of the core status indicators over here so we have actually the core status indicators and this these will tell you which cores are currently active and then are currently executing code and then each one of these here basically will tell you which line of code each core is on if that core is on so if it's off it'll just look like this but then if it's on you will see in binary what line of code the that core is on so then we have core one info over here core to core 3 and core for this computer also has a much more utilitarian style of debug center here so I'll show you guys that so let's go ahead and go to the core 1 debug center and as you can see here we are teleported to this mass of wiring in the middle of core 1 and we were surrounded by all of these signs and switches here and yeah so you can use this to manually step through your programs to debug to see what's going on with the computer and that kind of thing and yeah this debug center is extremely useful when debugging your programs as you can fly around all of the components around here as you can see and make sure that each one of them is working and you're able to diagnose problems and fix them and I have used this substantially to fix quite a few issues that I've had when I was building this computer so it is pretty useful all right now that I have talked about the specifications of this computer and the new things about in what's change let's go ahead and do some demo programs all right so the first time I program I have to show you guys is the classic Fibonacci program here and I'm going to show you guys how to load it and run it on this world and I will leave this world in the download of this video so that you guys can play around with it just like I have with all other racing computers so to load a program in let me see here we have the fibonacci program and it looks like that this is running on core 1 so we need to enable core 1 and we do that by pressing a toggle core 1 button so then as you can see now this light is on and these numbers here are is the binary value for the speed code for this program that the program can run it and the fibonacci program can actually run at the computers fastest default speed which is 30 ticks which is unheard of if you guys have followed my other read some computers these programs have had to run at much slower speeds conventionally and now they like they are able to run at much faster speeds and to basically set the speed what we do is that once we have this core enabled we just set the these value this the speed code here to match whatever is on the side and it's the zero zero zero and then we click the update speed register button and then if we've done it right we will get a little message here that says the core 1 speed has been updated now that this value has been written two core ones of speed register and that core will run will run at 30 ticks so now that we have loaded the program in we have set the core and we have set the speed let's go ahead and run the program and we just do that by pressing the on button and you guys will be amazed at just how fast this program runs and now this is in real time I'm not speeding this part up or anything but I will show benchmarks a little later compared to other computers but if we wait just a little bit we can see it's clumb up dating really quickly and we already have our first value here of the Fibonacci sequence which is one you will know that if you've watched my other Reds 2 computer videos my other showcase videos this is present unprecedented speed this is extremely fast and I've there's a lot of things that have gone into making this computer a lot more optimized and a lot more efficient to allow this sort of program runtime behavior so as you can see we already are on the third number of the fibonacci sequence and my computer is starting to slow down a little bit it's not lagging necessarily because I still have well over 60 FPS by starting to slow down just a little bit because of the efficiency and speed of this computer and the core that it's running on all right so here is a benchmark of the fibonacci program running on the res commuter 5.0 at the top and the rights to computer 4.0 at the bottom now this program has been heavily optimized for both of these computers and the rejig meter 4.0 has received some updates since its initial launch two years ago so these programs are running pretty quickly and we can see here that the fibonacci program for the res feeder 5.0 finish with two minutes and 54 seconds and the register computer 4.0 finishes with a time of 4 minutes and 8 seconds alright so the next program that I have to show you guys is the classic multiplication program and I have already loaded this into our program settings here so we have it set to 60 ticks which is the speed code value 0 1 1 and I have it set right here we have Core 2 enabled now the multiplication program when it starts up it will ask for two numbers through our user input system here in this program multiplies two numbers by doing repeated addition which I know is a very rudimentary algorithm to calculate multiplied numbers but for the purpose of this video it should suit us just fine alright so if we start this program here and we go ahead and look at our settings here we can see that Core 2 has been turned on with our score status indicator as we can see here and then we're getting some messages in the chat here with the courts who started in the clock and now we could see the line of code being updated here and now as you can see the this first indicator will turn on and you will see that it will start blinking and basically this is the program telling us that we need to input our first number so for this demo we're just going to do 7 times 7 which is classic multiplication or the classic numbers that we used to multiply so to do that we just enter 7 here in binary and then we press the computer input 1 button and what this will do is that once we press this button the computer will check if we've press this button and if we have which we have here then it will load this number that we've input here into the program as the first number to multiply and now that we've done that the computer will do some calculation with this number and now we can see here that as another second indicator has turned on and you also see that it will start blinking as well and this is the program telling us to enter in a second number to multiply so the second number and we're also going to use seven since you want to do seven times seven so now we just need to press the computer input to button and what this will do is that the computer will realize or check that we have submitted the second number to multiply and then it will read this number in and it will multiply seven times seven doing repeated addition alright so here we have a benchmark of the multiplication program running on the residue Peter 5.0 on the top and 4.0 on the bottom and just like the Fibonacci program the this program is heavily optimized for both of these computers now this does take a little bit longer because there's a little more computation going on or rather there's yeah there's a bigger volume of computations going on compared to the Fibonacci sequence but as we can see here the read to computer 5.0 finishes with a ton of six minutes and five seconds and then the register computer version 4.0 comes in with a time of 7 minutes and 36 seconds which shows the speed of the writes on computer version 5.0 now the third program that I have to show you guys is the smiley face program and this program actually is a tribute back to my very first redstone computer that I made about four years ago now I think around four years ago and yeah it's a little tribute to that and to prepare this program we're gonna go ahead and toggle core three and then I'm going to write the speed zero one zero so fifty tix into our speed system here and then update Core three speed register and as we can see we have core three speed updated person that again and now essentially what this program will do is that if we have this button pressed here it will draw a smiley face and then if it's not pressed it will draw a sad face so let's go ahead and see the sad face first alright so I'm just going to leave this button here unpressed and we turn on the computer here we will not see anything for a little bit cuz that's doing some initialization checks and that kind of thing but in a few seconds here we will see the computers start to draw something on the screen here and there we go now we have our first the GPU draw command as you can see on the output there and now we have another GPU draw command and as you can see we have two pixels that have been drawn on the screen and this is using the GPU pixel mode just drawing individual points and we have four pixels on the screen now and now the this program utilizes the GPU granular system so we will see what they will do in a little bit and it's sending over lots of GPU data right now so it's taking it takes several clock cycles to send all of that data over and now that we have our final GPU draw command and we lag a little bit but as you can see the GPU granular system has drawn an entire line right here and then the core shuts off and the computer shuts off because that's what the program does but as you can see here the GPU granular system can draw lines it can draw all sorts of stuff on here and if you've seen the right so computer 4.0 video they can update basically the entire screen in one singular GPU granular update instruction which is pretty incredible alright now that we have seen the sad face here let's go ahead and clear the screen and to show the happy face so actually I think this program clears our screen by itself so let's go ahead and set this input so now it's on and now if we start the program again the screen should be cleared and then we will see something else on the screen instead of a sad face so as you can see the GPU has been cleared and it also can do that in a singular instruction set of erasing every single pixel on there so that's very useful and then it does a couple of checks checks to see if this button was pressed and as you can see it check to that and now we are starting to get some action on the screen again so we have our two little eyes here and then it will draw the bottom half of the of the face I'm not going to say what face it is because I want you guys to see bump pretty sure you guys already know what kind of face it's going to be now the program is sending over GPU granular data and with this computer it takes four clock cycles to send over a full 30 bit GPU granular or to send over all of the data needed for a GPU granular instruction which is 30 bits compared to just one instruction on the right so computer 4.0 but as you can see now a drew a smiley face so they drew that same line but just one row lower and it has done that very quickly now this would have taken a lot longer if the plotter had to draw each pixel one by one all the way across but we have the GPU granular system for that so that is not necessary and we have our smiley face now the final showcase program that I want to show you guys is I call it a random drawing program and it's not a random drawing program but essentially what it does is that it draws randomly generated pixels on the screen and it draws 16 pixels I am pretty sure so let's go ahead and see that all right so I've gone ahead and set the program settings for our random drawing program I have clear the screen and we are all set to go now one thing I will note though is that with the random drawing program you need the random number generator to be toggled on or else you will not have random points generated on the screen you'll just have one point and you won't see anything else on there so now that we have the random number generator on and the random drawing program core enabled let's go ahead and start our program here so now I wanted to do just press the computer on button and we will wait a little bit so this program uses the random number generator like I explained to generate random pixels to be drawn onto the screen here and it does this by or the the number that it generates is actually an encoded coordinate and these in court encoder coordinates are then just updated or put on the display as pixels and we will see that very shortly all right so there is our first GPU draw command as you can see right here we have a GPU draw and a pixel has appeared on the display now this was a completely randomly generated pixel and the program will do this 15 more times and then it will shut off all right so there is our second GPU Druckman and as you can see we now have a completely different random pixel on the screen and this will basically happen with this will happen 14 more times and then the program will shut off and we will have a finished random assortment of dots on our screen you all right so as you can see here the program has running the computer has shut off and all the cores have been reset and as you can see here we have some random points on the screen and optimally there would be 16 random points but sometimes there may not be 16 points because sometimes the random number generator generates the same number and then the same pixel is drawn based on that number so some of these pixels are actually duplicates but you can't really see it so now it drew 16 times but there may not be 16 unique pixels on this display and yeah guys that is basically it those are all of the demo programs that I have for you guys today and now this computer is capable of so much more and I will hopefully be releasing new videos showcasing the potential of this computer taking full advantage of it before I wrap this video up I just wanted to give a huge huge huge huge thank you to all of you guys for all of the support and all of the encouragement all of the comments I read all of you guys's comments actually and I reply to a lot of them but I just want to thank as so much for all of the support the growth the channel growth this year has been absolutely ridiculous I hadn't I did not imagine my channel to be to have like 12,000 subscribers right now that's insane so I didn't even think that I'd reach you know 1,000 much less 12 so I just want to thank you guys so much for all the support and please give me suggestions give me ideas comments anything it's greatly appreciated and yeah I just want to thank you guys so much for everything this year and yeah I really appreciate it it's been an insane journey with that thank you guys so much and I will see you guys in the next video which is hopefully coming soon and yeah thank you guys so much once again and yeah buh-bye
Info
Channel: legomasta99
Views: 3,136,785
Rating: 4.8502812 out of 5
Keywords: minecraft, legomasta99, aguywhoisbored, redstone, computer, science, v5.0, version, 5.0, five, quad, core, alu, gpu, plotter, advanced, very, technology, technological, fast, speed, binary, amazing, ultimate, 12000, 12k, subscriber, sub, special, cache, enhanced, input, output, two, years, development, develop, compact, register, registers, data, model, stack, large
Id: SbO0tqH8f5I
Channel Id: undefined
Length: 31min 16sec (1876 seconds)
Published: Sat Dec 29 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.