To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/mattbatwings You’ll also get 20% off an annual premium subscription.
I like how much of this video focuses on how you represent data, and the fact that 0 and _nothing_ are meaningfully different, even if you might think to represent them in the same way (This is an important consideration in data science, where missing, invalid, and zero are all potentially similar looking values, not to mention stuff like the reason the data is missing being important)
6:25 BRO, I'm taking systems architecture and learning about registers for the first time, the $zero/$0 register being non writeable makes SO MUCH SENSE; that's why it's constant, that's why it's at the 0th position, THAT'S HOW THE DECODER WORKS. I love you, I don't know why professors have to overcomplicate things so much
@@Demopans5990 that's good to know, actually explains an example my professor did when testing some pointers, she got 0 then nil, so I guess those were the same output lol
@@Demopans5990 Technically it's typically (void*)0, or a pointer to some data at address 0, just so that the compiler knows it's checking for an actual null pointer. But in C it's basically the same so it doesn't really matter.
This series is so cool! I've seen the "NAND to Tetris" concept done a bunch of different ways but pairing it with Redstone (especially as fluently as you do) is very cool to see.
4:33 please note that there's no need to get rid of that first register - you can put torches beneath every line, like the write line to r0, and then only unlock these torches during a write operation. that way, we can have four registers with two bits, and 0 points to the first one. if you're aware of this, it would be useful to point it out in this (or at least next) video so others acknowledge
Thank you for breaking down the register file dual read functionality with the redstone tricks. I spent like 2 hours trying to understand it from your first computer world download and ended up making my own anyways because it is a headache trying to understand it without knowing why it was built that way.
For a 4 bit address bus, it might be wiser to use a clock line above the address bus instead of disabling the address. This prevents updating the entire bus twice. For the memory you would do the same anyway as there it does have a zero address register (still debatable, but ymmv)
I hope you can share some tips on how you stay focused and keep your mind organized while designing and building all of this. I often find myself getting distracted and wandering off, ending up doing nothing.
i made 3 CPU's in minecraft but learning it was hard af because there were no tutorials but after you finish this series i think that a lot people will start making their own cpus
Once this computer is fully built, it would be cool to make a 20 ticks per second speed test with basic fonctions, before speed up the thing for more complex codes
I hate people thinking like this. It's great that we can have such valuable resources like this series for free, but they don't replace a formal education. I know it can be tough and boring, but I wouldn't trade the foundation and skills I got in university for some courses on youtube.
This is more or less the solution I used for my own redstone computer design, though without dual read (only immediate values are used). 4x 64-byte addressable memory modules: 1 for instruction memory, 1 for stdin, 1 for RAM, and one for stdout. I have the ALU and simple ISA implemented properly as well (9 instructions; opcode = 4-bit operator + 4-bit operand), and I just need to hook up some user-friendly I/O and controls to make it usable. After that, I will add an assembler and a compiler, then I'll be able to write programs with renamed paper items in-game. I'm somewhat surprised that I haven't seen anyone do this before since it should not be that complicated.
How are you planning to assemble programs? I assume you mean that they will assemble into a schematic of barrels or something to paste onto your instruction rom?
@@hyper_lynx Filter an item for the operator, encoding it as 4 bits; filter a second item for the operand, encoding it as 4 bits; write the 8 bits to the instruction memory; increment the program counter. Once the program is written, reset the program counter and enable the opcode decoder and clock. No barrels -- program memory is identical to a large register file. I made some unusual design decisions with my ISA because the ultimate goal is to compile Brainfuck source code in-game and run it on the redstone computer, but it will take a bit of development to measure branch offsets for loops -- I think it will require its own register file and ALU.
I wonder if I could use this to make a random number save reader? Where I could gen and save X random numbers. Then coding an action for each number. To make a Random event generator
Huh, not clocking your reads? This makes me (naively) worry about signal staggering (where a bit or two lags by a few GT) reading an unintended register.
The read is combinational. If you wait long enough, eventually, the right data will appear for you to write it. That said, if something is off by a few GT, its always good to try to synchronise your components.
3:50 in my head r0 will always be the empty one, r1 the statement reserved one, r2 the arithmetic helper temp one, r3 the global temp, r4 return value, r13 the constant 248, r14 the constant 1 and r15 the stack pointer, and you cannot change my mind.
6:45 I've actually wondered what would happen if you wrote to it, and now i realized that's probably how sending to null works, it's just a void, still a valid place but it kinda doesn't exist
Legitimate question probably stupid and obvious answer: Can this filetype theoretically be connected xor tied to the world seed and downloaded (as in is there any mathematical logic behind why the filetype does smth with a seed iff so at all iff possible.).? Note: I am using the mathematical iff which has two ‘f’s to indicate that said “iff” is/means ‘“If & only if?”’.
Yo, anyone knows if it would be working to use a one bit ALU, as stupid as it sounds, using the copper bulbs to store data into punch cards similar to old computers to push the line of bulbs one block further if we end up exceeding the one bit capacity (which happens very often) so if we do something like 1+1, the half adder only returns 0 as a sum and 1 as carry which pushes the result card by 1 and repeats as long as we still have numbers in the 2 other imput punch cards and so on effectively making complex calculations like 81*77 with a one bit ALU. Now would that be possible?
I'm making a programmable i called George in bedrock on my phone I'm thinking I should make a really small version so I can comprehend what I need and see if my machine is working
It's fairly complicated. Even for something seemingly simple like addition, you have to build a shift register for the mantissa that can be controlled by the difference in exponents, and there's a lot of edge cases and weirdness, even if you don't plan to implement the full IEEE standard with NaN, infinity and whatnot.
Regarding the ALU video, I'm trying to get my own version, similar to yours, but that guarantees any output exactly after a certain number of ticks: is it worth it?
To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/mattbatwings
You’ll also get 20% off an annual premium subscription.
First🔥
yo matt
third lol
Matt nice video of register files I’ve been learning it for years
fr
Making a physical computer IRL, by manually fabricating all of its components: 😣
Making a redstone computer: 😎
says the guy using a physical computer
@@xoxogamewolf7585 Well, I didn't have to build all of its components.
Done it before tho
@@atom1kcreeper605 cap
idea, make this redstone computer once done make it hold up to 16kb of memory
I like how much of this video focuses on how you represent data, and the fact that 0 and _nothing_ are meaningfully different, even if you might think to represent them in the same way
(This is an important consideration in data science, where missing, invalid, and zero are all potentially similar looking values, not to mention stuff like the reason the data is missing being important)
Loving this series. It’s been 25 years since I studied computer architecture, so it’s fun to get the refresh!
6:25 BRO, I'm taking systems architecture and learning about registers for the first time, the $zero/$0 register being non writeable makes SO MUCH SENSE; that's why it's constant, that's why it's at the 0th position, THAT'S HOW THE DECODER WORKS. I love you, I don't know why professors have to overcomplicate things so much
for real.
And some trivia
NULL in C is just 0
@@Demopans5990 that's good to know, actually explains an example my professor did when testing some pointers, she got 0 then nil, so I guess those were the same output lol
This... Does put a smile on my face.
@@Demopans5990 Technically it's typically (void*)0, or a pointer to some data at address 0, just so that the compiler knows it's checking for an actual null pointer. But in C it's basically the same so it doesn't really matter.
This series is so cool! I've seen the "NAND to Tetris" concept done a bunch of different ways but pairing it with Redstone (especially as fluently as you do) is very cool to see.
if anyones wondering dual read is very useful to to provide both inputs for the alu
This series is just fire. I just joined channel membership, you deserve it
yessss, finally a new video of this series
I always wondered how you can create a register file.
Really?
@@rolandleslie2564exactly what I'm asking myself 😂 simplest part of the CPU
@@rolandleslie2564 Can I not be curious?
@@Chakamatics like seriously, I’m wondering why the design is like this
Not everyone knows how computers work guys
4:33 please note that there's no need to get rid of that first register - you can put torches beneath every line, like the write line to r0, and then only unlock these torches during a write operation. that way, we can have four registers with two bits, and 0 points to the first one. if you're aware of this, it would be useful to point it out in this (or at least next) video so others acknowledge
Yes, but the way Mat did it here allows for a natural 0-register and is more in-line with usual circuit design.
Yeah, but when you think about it, zero register is actually a thing in some architectures
So what you're saying is instead of making a zero register... You make a zero register with another step. Brilliant.
Its actually crazy how you can make all this in minecraft bro
Thank you for breaking down the register file dual read functionality with the redstone tricks. I spent like 2 hours trying to understand it from your first computer world download and ended up making my own anyways because it is a headache trying to understand it without knowing why it was built that way.
I won't be watching this until it fully comes out, but it looks awesome so far!
For a 4 bit address bus, it might be wiser to use a clock line above the address bus instead of disabling the address. This prevents updating the entire bus twice. For the memory you would do the same anyway as there it does have a zero address register (still debatable, but ymmv)
9:40 if your trying to recreate this on bedrock, use slabs instead of the orange glass tower and fill all the read barrels with 2 stacks of items
I liked and subbed with all notis on to get this within 1 min
I hope you can share some tips on how you stay focused and keep your mind organized while designing and building all of this. I often find myself getting distracted and wandering off, ending up doing nothing.
i made 3 CPU's in minecraft but learning it was hard af because there were no tutorials but after you finish this series i think that a lot people will start making their own cpus
Keep going on this series
W vid, but the only thing im waiting for is Control Unit
If you want to understand them too watch core dumped he's really good
Mattbat: Uploads again
The entire CS community
Matt, I respect your redstone skills. Great video.
This series is so helpful and easy to follow along! Soon I'll be able to flex to my friends I built a computer in minecraft
Hi matt you are the best!!!
I'm really in love with this series, you reall put a lot of effort into every video. Keep up the great work!
I'm surprised on how chill he is on losing unecessary ticks.
EP 3 LETS GOO
BABE!!!!!! WAKE UP!!! MATT HAS DROPPEEEEEËEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED
Finally i can build a new part of my MC CPU.
Once this computer is fully built, it would be cool to make a 20 ticks per second speed test with basic fonctions, before speed up the thing for more complex codes
I swear, I was looking if he uploaded yesterday evening, but he didn't so I went to bed. Just as I was laying down, he uploaded.
I wanted to build a new PC for ~1000€, who would have thought you could just build one in Minecraft!
It's only like $40...
Plus whatever the computer you're running it on cost.
Ive been waiting for this!!
comp wiring is funny sometimes, that was certainly a way to create a 2 tick pulse
Thank you for your work mat!
Who needs college when i can watch this series
Exactly!,
I have a digital technics course this semester, so this couldn't have come at a better time!
True
I hate people thinking like this. It's great that we can have such valuable resources like this series for free, but they don't replace a formal education. I know it can be tough and boring, but I wouldn't trade the foundation and skills I got in university for some courses on youtube.
Yoyoyoyoy a new video's out.
OK. I'll definitely make an assembler for that computer assembly.
Sheesh new vid dropped! ❤️
I was waiting for sooo long for this
Tysm matt batt wings!
New video 🔥
This is more or less the solution I used for my own redstone computer design, though without dual read (only immediate values are used). 4x 64-byte addressable memory modules: 1 for instruction memory, 1 for stdin, 1 for RAM, and one for stdout. I have the ALU and simple ISA implemented properly as well (9 instructions; opcode = 4-bit operator + 4-bit operand), and I just need to hook up some user-friendly I/O and controls to make it usable. After that, I will add an assembler and a compiler, then I'll be able to write programs with renamed paper items in-game. I'm somewhat surprised that I haven't seen anyone do this before since it should not be that complicated.
How are you planning to assemble programs? I assume you mean that they will assemble into a schematic of barrels or something to paste onto your instruction rom?
@@hyper_lynx Filter an item for the operator, encoding it as 4 bits; filter a second item for the operand, encoding it as 4 bits; write the 8 bits to the instruction memory; increment the program counter. Once the program is written, reset the program counter and enable the opcode decoder and clock. No barrels -- program memory is identical to a large register file. I made some unusual design decisions with my ISA because the ultimate goal is to compile Brainfuck source code in-game and run it on the redstone computer, but it will take a bit of development to measure branch offsets for loops -- I think it will require its own register file and ALU.
Can't wait for the next episode, these videos are so damn cool :)
Yay, I love registers
I love this serie
Will you try to make a dedicated Gpu?
This is the first time that I ever watched a video one minute after it was published...
me too, got the noti
@@DanielBerzinskas I didn't even notice the notification (somehow), I just saw it in my recommendations.
Love your tutorials
I would like to thank you for the content!
I'm for the explanation, I'm not going to build a PC in Minecraft.
I wonder if I could use this to make a random number save reader? Where I could gen and save X random numbers. Then coding an action for each number. To make a Random event generator
FINALLY MATTBAT
Yes!
Huh, not clocking your reads? This makes me (naively) worry about signal staggering (where a bit or two lags by a few GT) reading an unintended register.
The read is combinational. If you wait long enough, eventually, the right data will appear for you to write it. That said, if something is off by a few GT, its always good to try to synchronise your components.
Nice!
3:50 in my head r0 will always be the empty one, r1 the statement reserved one, r2 the arithmetic helper temp one, r3 the global temp, r4 return value, r13 the constant 248, r14 the constant 1 and r15 the stack pointer, and you cannot change my mind.
cool video!
E, part three! Btw, the video appeared right before my eyes.
Really cool video :D
6:45 I've actually wondered what would happen if you wrote to it, and now i realized that's probably how sending to null works, it's just a void, still a valid place but it kinda doesn't exist
Legitimate question probably stupid and obvious answer: Can this filetype theoretically be connected xor tied to the world seed and downloaded (as in is there any mathematical logic behind why the filetype does smth with a seed iff so at all iff possible.).?
Note: I am using the mathematical iff which has two ‘f’s to indicate that said “iff” is/means ‘“If & only if?”’.
Yo new vid!!
Yo, anyone knows if it would be working to use a one bit ALU, as stupid as it sounds, using the copper bulbs to store data into punch cards similar to old computers to push the line of bulbs one block further if we end up exceeding the one bit capacity (which happens very often) so if we do something like 1+1, the half adder only returns 0 as a sum and 1 as carry which pushes the result card by 1 and repeats as long as we still have numbers in the 2 other imput punch cards and so on effectively making complex calculations like 81*77 with a one bit ALU. Now would that be possible?
Making a register file was so complicated before😰
Nice
I'm making a programmable i called George in bedrock on my phone I'm thinking I should make a really small version so I can comprehend what I need and see if my machine is working
Hi you are my favorite TH-camr
Finally
“Sorry Mom - Matt released a new video, cya in three days”
very cool
Finally, redstone daddy uploaded a new vid🥵
cool new vid
How to make floating point numbers in redstone?
It's fairly complicated. Even for something seemingly simple like addition, you have to build a shift register for the mantissa that can be controlled by the difference in exponents, and there's a lot of edge cases and weirdness, even if you don't plan to implement the full IEEE standard with NaN, infinity and whatnot.
Regarding the ALU video, I'm trying to get my own version, similar to yours, but that guarantees any output exactly after a certain number of ticks: is it worth it?
P.S. now my ALU work at 11 tick delay from input ro output, Is It good? Is the maximum optimization i think Is possibile
W
Hi
Yo wsp
You're first
now make a pdf-file, we never had any of those in youtube minecraft /ref
I was wondering if you could join ORE (open redstone Engineers)
sometime
W vid
May I ask something, is it work if learn that using mc bedrock? If you had mentioned that on another video please recall me
It probably won't work. 😔
Replace glass towers with upper slabs and everything works fine! 🙃
minecraft bedrock redstone is not sufficient for almost any redstoner's needs
Yaay a video
YYOOOOOOO
Why it droo at 11pm 😭😭
LETS GOOOO
You’re the best
P A B L O
Yooooo 165 like
I got 20th 😊
hola
5:15 that's not a register blunder, that's a tactical way to make mov, neg, not and lsh possible
waow!!!!!!!
Hi
Bro please drop your PC specs
hi
yay :))
Meow! :3
Wait does this work in bedrock
Amazing, gg
Brrr
I am make a redstone comparator in Minecraft
Hell yeah, 1 view gang
Here