From Transistors To Tetris Part 1 : Computer Architecture

Поділитися
Вставка
  • Опубліковано 26 чер 2024
  • I've been building a 1970's era computer out of discrete transistors for the last few months and I thought I'd start a UA-cam series documenting my progress. In this video, we won't be discussing any hardware, these are just my plans for the overall architecture of the computer. In future videos I'll discuss the various circuits in detail.
  • Наука та технологія

КОМЕНТАРІ • 205

  • @jefftruck
    @jefftruck 3 роки тому +504

    Lev - at the expense of being long winded - here it goes. I found this video today. My face quickly grew a smile. I'm quite old by today's IT standards. Started out building a small micro computer in the 70's as a teenager. Grew up professionally in the mainframe space. Eventually made my way into client server and other related fields of IT. You might say full circle on many fronts. I have often feared that today's younger generation is missing out in understanding the low level world of computers. I myself have dealt with IT professionals today that do not even know what a CPU register is - yet they 'program'. I bought Ben Eater's kit in 2019, built it, brought out the old computer from the 70's got that running and I'm back in the game again with low level computing. Can't get enough of it. This brings me to your video and work. I can't express how happy I am to see that a young person (by my standard of age) is interested in this level of computing. I know from Ben Eater's Reddit that a lot of people are working on it, but I never really understood what the demographic spread of age was involved. I think it it AWESOME to see you getting into this low level stuff. If you don't already know, as a seasoned IT professional, this will open huge doors for you. Thank you so much and I look forward to watching your progress!

    • @yigita.3824
      @yigita.3824 Рік тому +22

      This comment somehow made me nostalgic for a time and place I am far far away.

    • @ThatGuyDownInThe
      @ThatGuyDownInThe Рік тому +3

      that's why I'm here. I'm a programmer and so many I work with are comfortable just doing that, I need to go to the deepest level, I have to understand this stuff from A-Z, makes the job a lot easier too lol.

    • @davidcarlsson1396
      @davidcarlsson1396 Рік тому +3

      I am 25 and really want to find time for these stuffs. My grandfather collected mechanical calculators, and I really want to know more about the early days of transistor and computer technology.
      Will probably buy a Ben Eaters kit, seems funnier and more productive than lego.
      I was the last class at uni to get tought these lowlevel stuff, the supervisor knew nothing and everything was stressed, really want to emerge and take my time to understand...
      Also to be able to teach my nephews and niece. And possibly other kids that want to listen to me when I turn 40 and speak about "the old days" that actually was 30 years before my birth XD

    • @iknoweverything9765
      @iknoweverything9765 Рік тому +2

      actually yeah you're right, it's really hard to find good resources and for me i started getting into it recently to get that experience. also we're not taught anything about it in college, nothing about hardware, nothing about developing software, it's mostly just learning how to "code" it.

    • @pinglord1524
      @pinglord1524 Рік тому +1

      no

  • @isbeb507
    @isbeb507 Рік тому +14

    i laughed at "when i go to college" bud this was more ambitious than half the projects i did in college

  • @fun3306603
    @fun3306603 4 роки тому +177

    As someone who love Ben's videos. This is awesome!

  • @hgbugalou
    @hgbugalou Рік тому +3

    I fall somewhere between the computing OGs and the iphone zoomers. I grew up with dial up modems and AOL. In any case, I love to see young people getting in the trenches with this low level close to the hardware level of development. It's knowledge that needs to be retained. You will be changing the world by the time you are my age!

  • @harry356
    @harry356 Рік тому +23

    Very impressive that you learned this on your self. I got to learn these basics in my CS bachelor. Was fun and tedious and frustrating. But magical too. No simple feat to understand it, but even more impressive that you learned it yourself.

  • @swirlingabyss
    @swirlingabyss 2 роки тому +6

    Ben Eater's series is great! After years of trying to learn computer architechture, it finally clicked when I watched Ben's series.

    • @skilz8098
      @skilz8098 Рік тому

      It's a bit dated but it's still great source material and the ideas and concepts are still quite relevant... There's a university channel that gets into ISA design - CPU Architecture and System Management... I think the later courses extend on this and even get into Operating System Design. I believe the University I seen before is called Bilkent Online Courses. Now they have a lot of courses for many different topics in software engineering, but there is some hardware engineering related material. I think the courses I watched was from around 2008 - 2012 era... It's really good source material. And the one professor explains things quite well.

  • @adilsongoliveira
    @adilsongoliveira Рік тому +21

    When I was an intern, working at a steel foundry, the computer that ran one of the furnaces was almost all based on discreet NOR gates. I made hundreds of those boards to keep as spare parts.

    • @stachowi
      @stachowi Рік тому +6

      any computer can be built with ONLY NOR gates OR NAND gates... pretty amazing.
      There is a book called "NAND to Tetris"

    • @ophello
      @ophello Рік тому

      *discrete

    • @doctorbobstone
      @doctorbobstone Рік тому +1

      @@ophello You never know. Maybe his NOR gates are good at keeping secrets. As they say, "Loose bits sink ships."

  • @tocodelray
    @tocodelray 4 роки тому +7

    Fantastic video. I am new to computer science and this type of project is very inspirational and exciting! I am looking forward to part 2!

  • @PaymaanJafari
    @PaymaanJafari Рік тому +45

    This is great engineering. I started on C64 and 6510 assembly, and you designing all that ftom scratch means you have studied and learned all the fundamentals of it. It's a pitty you stopped making more videos on similar topics.

  • @JSE52010
    @JSE52010 4 роки тому +4

    Looking forward to watching this develop

  • @legendaryreaper2276
    @legendaryreaper2276 Рік тому

    This is the best Video I have ever seen mentioning how computers work ❤❤

  • @josephjensen8436
    @josephjensen8436 Рік тому

    Simply impressive! 👍

  • @3DSage
    @3DSage 2 роки тому +3

    really amazing project! :)

  • @parihar786
    @parihar786 Рік тому

    Wow! These guys have so much time. It was entertaining to listen to this dude. First few minutes ;)

  • @gigachad2419
    @gigachad2419 Рік тому +1

    Aah Yes
    I Love These Videos..... Ben Eater and Yours Channel is what I look forward to
    Keep going with your content!!

  • @colin351
    @colin351 10 місяців тому

    Excellent video/series, man. Very well explained and technical (in a good way)

  • @ralphlouis2705
    @ralphlouis2705 3 роки тому +1

    You get the best intellectual men who never went to formal education yet they made the best

  • @BalticLab
    @BalticLab Рік тому +5

    "I have no formal education in electrical engineering." -> Awesome, that - by my experience - correlates with good content. After watching the video, I would say that hypothesis proved itself to be true in your case as well. Good job!

  • @pawanchawla3205
    @pawanchawla3205 Рік тому

    Thanks for the motivation. I wasn't sure if I could do it, but I might try it eventually.

  • @lauprellim
    @lauprellim 3 місяці тому

    What a fantastic and inspiring video. I have a ph.d. In an unrelated field and am a tenured professor, yet you make it all so elegant! Really enjoyed video 2 as well. Congratulations and keep it up!!

  • @axelanderson2030
    @axelanderson2030 Рік тому

    no joke, I've thought about Tetris on transistors before. Awesome video, thanks

  • @donwald3436
    @donwald3436 Рік тому

    Young man, you are going to go far in life. Keep it up.

  • @richardsidler
    @richardsidler Рік тому

    We done, and we’ll written. Looks forward to further episodes. Best success!

  • @yezariaelll
    @yezariaelll 3 роки тому +3

    Great stuff. Just saw your post at reddit. Hopefully this channel will get the attention it deserves soon! :)

  • @markb7084
    @markb7084 3 роки тому

    Very interesting (simple and effective) architecture. Have to implement it on my simulator.

  • @ARBB1
    @ARBB1 2 роки тому +3

    What fantastic work! I've dreamed of doing this, but never have done so. Great work.

    • @randomcuber230
      @randomcuber230 Рік тому

      same

    • @SebleBeyene-jp8hp
      @SebleBeyene-jp8hp 2 місяці тому

      Is it like Mans dream I'm 17 but i just want to build computer. I just start curious about computer since i was 12!

  • @spiderjuice9874
    @spiderjuice9874 2 роки тому +23

    I like your ideas. Your commands are very reminiscent of the 6502, but that's an awesome chip so my comment is not a criticism.
    I was planning to build a *really* basic computer after watching Ben Eater's breadboard computer videos, mine would have a total memory of 256 bytes, with an ability to modify to stack size against free memory to give maximum convenience, depending on the program being designed. It is only a demonstration computer. When I get around to it. (Just need a decent lockdown to give me some time.)

  • @AndrewErwin73
    @AndrewErwin73 9 місяців тому +1

    Very nice work. I am late to the party. I have been programming professionally since 1999. I am of that generation that had to know a little bit about how computers worked to write programs for them. And I have always tried to instill that into developers that I teach. It is pretty impressive that you would take that on yourself.

  • @presidentashleyadamaricruz9374
    @presidentashleyadamaricruz9374 4 роки тому +5

    THIS IS SO WELL DONE

  • @kevinz1991
    @kevinz1991 3 роки тому

    phenomenal. thank you

  • @JuanesChiwirosky
    @JuanesChiwirosky Рік тому

    Awesome project!

  • @tanjaweber-flohr6106
    @tanjaweber-flohr6106 5 місяців тому

    Bro was staring in my soul at the beginning 🥶 ( great video )

  • @jitenanand4899
    @jitenanand4899 Рік тому

    understanding the hardware is interesting but more interesting is how the different manufactures came togather to decide on specification standards. The evolution of architechtures, standards, specifications, apis is really interesting to know as those human decisions are key to understand how modern complex systems flawlessly works with themselves.

    • @shawnmuench
      @shawnmuench Рік тому

      I think about that too, but more in terms of competition fallout. Surely over the decades some people got burned and left out of the industry as their standard was suddenly made obsolete. I can't even guess the politics and plays that the big companies made to ensure their survival.

  • @jsmythib
    @jsmythib 5 місяців тому

    I was also infected by the Ben Eater series :) If i was to do it again I would like to try and feed my architecture into chat gpt. I think it could really speed up dev in a few areas. Your full transistor design is impressive. Fun stuff. You, like Ben are building a floor for people to stand on. Thankyou.

  • @devdylan6152
    @devdylan6152 3 роки тому +1

    really great project and the video is really well delivered! congrats.

  • @ropersonline
    @ropersonline Рік тому +1

    16:15 and 16:50: A memory map so nice, you announced it twice! :)

  • @sammelamed7311
    @sammelamed7311 Рік тому

    Lev, great video!!

  • @matthewsidaway1437
    @matthewsidaway1437 3 роки тому

    excellent video

  • @millamulisha
    @millamulisha Рік тому

    Certified awesome. 😎

  • @cheeseman1153
    @cheeseman1153 Рік тому

    I don't understand a single word he is saying but this is still on of the most entertaining youtube videos I've seen

    • @ophello
      @ophello Рік тому

      Dude watch Ben Eater’s videos on building a breadboard computer. It’s so straight forward that even a noob can understand.

  • @Theblaziken2000
    @Theblaziken2000 Рік тому

    I definitely hope I can do something similar to this before I graduate. Having university resources will most definitely make such a process easier. It's more of the programming that I would struggle with because I'm not the most familiar with that stuff atm. Plus there's no gdb or valgrind when you're building your own cpu.

  • @MrMaxeemum
    @MrMaxeemum 2 роки тому +15

    I understand electronics and programing (including basic assembly) but in between those I find incredibly hard to understand (same like chemistry, it's just black magic), I have a lot of admiration for those who do. It all goes to show we all have a place in this world and that we are not all equal and the differences are what make the world go round. I am quite happy to not know how the screen is drawn while I type an Email to my friend about a funny cat video I saw the internet. Respect those who have gone before but realise they didn't know everything and there may be a better way of doing things. So long as we all move forward together we can't fail. Sorry for the rant, I have been drinking tonight.

  • @yohannestz9893
    @yohannestz9893 2 роки тому

    this is so awesome after watching ben's videos

  • @astrixff
    @astrixff 3 роки тому

    Amazing!

  • @iDontProgramInCpp
    @iDontProgramInCpp 3 роки тому +4

    16:00 the code does work if you put `index` in RAM, `index` is just a regular variable

  • @Meowmix8088
    @Meowmix8088 4 місяці тому

    I built a 1 bit adder using discrete npn bjts. It took an entire weekend and was very hard for me. I am much older than you are also. This is all to say…. What you have done is just simply extraordinary.

  • @tomhankstomhanks2579
    @tomhankstomhanks2579 7 місяців тому

    Very good brother i like your channel

  • @LoyalTreeFriend
    @LoyalTreeFriend Рік тому

    very impressive

  • @Bianchi77
    @Bianchi77 6 місяців тому

    Cool video, thanks :)

  • @robertogudino1919
    @robertogudino1919 3 роки тому

    Congratulations! I am also working on a homemade 32 bit computer.

  • @arduinomaquinas
    @arduinomaquinas Рік тому

    Nice, like full 😉👍👏👏👏

  • @rahulshekhar8498
    @rahulshekhar8498 Рік тому

    Thanks for tutorial

  • @chrisskyr623
    @chrisskyr623 3 роки тому +1

    Awesome

  • @BIGRIP87
    @BIGRIP87 3 роки тому

    very very cool

  • @crystalsheep1434
    @crystalsheep1434 9 місяців тому

    Pretty cool

  • @ianwalsh3868
    @ianwalsh3868 Рік тому

    I was actually thinking about transistor style login in Minecraft TODAY! I love Ben Eater’s videos, would you be interested in doing a video on your Minecraft version/sharing the world? That would be an excellent starting point, having seen Ben’s videos

  • @beentrill24
    @beentrill24 Рік тому

    I'll say this much, as a student going to one of the top universities in the country as an Electrical Engineering student, especially learning as much in theory and concept about these components such as transistors or microprocessors I've learned just as much if not more in the first 45 seconds of this video than you could learn at a top tier university. Sad but true.

    • @beentrill24
      @beentrill24 Рік тому

      Please by all means, learn as much as you can from the internet before wasting your money on a degree unless you absolutely need it. It's all a scam. please.

  • @JournalKannada
    @JournalKannada Рік тому +1

    Ben Eater Jr. 🤩❤️🔥

  • @antonnym214
    @antonnym214 2 роки тому +5

    Very nice work! I have been thinking of a design for a 12-bit Addr / Data computer. It was hard, but I was able to decide on a 16-instruction set. That's 4-bits for the opcode, and 8 bits for data all in the instruction. Originally, the plan was using relays, but I may end up going with transistors like you. This is very interesting stuff! All good wishes.

    • @deang5622
      @deang5622 Рік тому

      Why not do it in an FPGA and use a hardware description language?

  • @raymondhintz5457
    @raymondhintz5457 Рік тому

    You can speed up the turn off time of a transistor by discharging the the capacitance in the base to collector junction by using a germanium diode.

  • @TF-km2ls
    @TF-km2ls Рік тому +1

    I think I never subscribed that fast to a channel

  • @saydron
    @saydron Рік тому

    Thanks Lev

  • @naikrovek
    @naikrovek 2 роки тому

    well this is awesome

  • @williamsteele
    @williamsteele 2 роки тому +1

    So, when you're performing the JSR, are you pushing both the high and low bytes (8 bits) to the stack to get a full return address, or are you shortcutting it to within 256 bytes of the subroutine and just applying an offset?

    • @FF177-
      @FF177- Рік тому +1

      the stack is 16 bits wide, only the stack counter is 8 bits

  • @aas_shortforsmthin
    @aas_shortforsmthin Рік тому

    0this my first time in this channel. 0:26 sec in and im ALL IN HERE

  • @rajkiran3989
    @rajkiran3989 Рік тому +1

    Hell ya...i am gonna subscribe.

  • @VikiLab
    @VikiLab Рік тому +1

    This great !! my question is how did you learn all this ?

    • @rkmag1141
      @rkmag1141 Рік тому +1

      The references he said at the beginning are enough for those who are really interested in basic computer architecture

  • @TheUtuber999
    @TheUtuber999 Рік тому +1

    2:37 I like the clever idea of reducing the number of required registers to keep the transistor count to a minimum, even if it means needing to tweak the code a bit to accommodate. I'm wondering if you might still be able to drive those 2N7002s at something like 1 - 10 mA because 200 mA seems ridiculously high. Have you tried that already?

    • @ArneChristianRosenfeldt
      @ArneChristianRosenfeldt 8 місяців тому

      There seems to be a rather hard lower limit for the number of registers to still be able to implement 8086 microcode. We need PC. We need a stack to push away context. For MUL and REP we need CX to count. We need AX, DX for the values. For MOVS we need two addresses, let’s store them in BX and DX.
      On 6502 CX would be X. Y and Z would be the addresses is MOVS . DX would be B.

  • @aewens
    @aewens 3 роки тому +1

    Seems similar to the “IntCode” implementation from the 2019 Advent of Code problems

  • @kgtuuhffmkk8907
    @kgtuuhffmkk8907 9 місяців тому

    Congratulations! You have re-invented 6502.

  • @thecorruptedbit5585
    @thecorruptedbit5585 Рік тому +1

    Have you checked out Usagi Electric's Vacuum Tube Computer project? It might be interesting to compare to your own goal (though the technologies are a bit different)

  • @firashaidar1544
    @firashaidar1544 2 роки тому +1

    What transistors did you use?

  • @ahmedsajeed1240
    @ahmedsajeed1240 3 роки тому +1

    brother , it would be great if you do a video on how you have started out in thus HOW THE COMPUTER WORKS and BUILDING ONE ON MY OWN journey , what books you've read , whom you've watched , how long it took , your advice for novice people like me and also what mistakes not to make .
    please say what u think , I'm waiting for your response...

  • @thatoyaonebogopa9483
    @thatoyaonebogopa9483 Рік тому

    Do you have a part list so we can buy and follow along.

  • @MhdAliAlashkar
    @MhdAliAlashkar Рік тому

    عمل رائع حياك الله

  • @Frisky0563
    @Frisky0563 Рік тому

    Do you have a logic analyzer say 64 channels ? I would be awesome to watch this in action. The fetching of opcodes and associate data. The result of an addiction instruction and so many things. I work with microcontrollers which is very similar in nature. I lately have been research a older Zilog Z8 series mpu which came out shortly after I graduated from Devry. I'm using a Z8613RS and a Z8681 in expanded mode. It's a lot of fun. I think that's awesome building a computer from discrete transistor. I just want to say Hi and wish you well.

  • @danielfein1639
    @danielfein1639 4 роки тому +2

    wow

  • @lordrahulcool
    @lordrahulcool Рік тому

    How are those yellow relay?
    Are they reliable?

  • @mythofheroes1675
    @mythofheroes1675 Рік тому

    Hi! What books did you use to learn all that? Me want.

  • @nariharicreations
    @nariharicreations Рік тому

    I found out why soft softs so different compared to Ableton. It is because there is a default limiter on the master that i didn't know about.

  • @theorphanobliterator
    @theorphanobliterator Рік тому +1

    I feel like 4 registers isn't enough. Especially because they are special purpose registers. Less memory accesses are needed in a CPU with more registers.
    In the few cpus I've built, I usually use 8 general purpose registers, convinced with the numerous special purpose registers. In programs like Tetris, this allows the cpu to not access memory as much; more data can be stored with the alu. One register for current falling brick x position, another for y position. The next for the current block type, and the fourth register for the next block type. things like these allow you to do constant operations on these operands very quickly without having to access memory (takes multiple cycles)

    • @DigitalViscosity
      @DigitalViscosity Рік тому +2

      The design is reminiscent of the 6502, it has zero page addressing which is just as fast as 256 registers.

    • @theorphanobliterator
      @theorphanobliterator Рік тому +1

      @@DigitalViscosity i still prefer the load/store architecture like that of the mips instruction set

  • @JKTCGMV13
    @JKTCGMV13 Рік тому

    “When I go to college” this is an insane project for a high schooler

    • @DigitalViscosity
      @DigitalViscosity Рік тому

      Nowadays it is, back in the 80s and 90s the computer "nerds" did stuff like this but with less access to information unfortunately. They got it nice nowadays.

  • @michaelmounts1269
    @michaelmounts1269 Рік тому

    👍

  • @abdullahyousef3596
    @abdullahyousef3596 Рік тому

    Are there good UA-cam videos/Playlists I could study from to able to build similar stuff, also what are the topics I need to study to build similar things.

  • @vanshjam3015
    @vanshjam3015 Рік тому

    Thank you! Here's a request from ! Can you please make a tutorial on how to record your actual tutorial and input your own soft

  • @evenaicantfigurethisout
    @evenaicantfigurethisout Рік тому

    hello, are you going to continue this series?

  • @varunahlawat9013
    @varunahlawat9013 3 місяці тому

    WTF! teach me all of this! subscribed

  • @ehrenmurdick
    @ehrenmurdick Рік тому

    Are the 16bit instructions just literal control words? If so, do you break them up into more than one step in the instruction decoder logic?

  • @elinesiobrito3333
    @elinesiobrito3333 Рік тому

    good

  • @chromosundrift
    @chromosundrift 3 роки тому

    Don't forget to add sound!

  • @awesomesky9492
    @awesomesky9492 Рік тому

    Awesome😱😱😱😅

  • @yuvarajcena27
    @yuvarajcena27 3 роки тому

    Wow

  • @ahmedabdelmonem2409
    @ahmedabdelmonem2409 Рік тому

    Drag the volu for the setuper track that you're recording into all the way down.

  • @mathwithgui8303
    @mathwithgui8303 2 роки тому

    next video creating a two cpu motherboard homemade, do you think its possible?

  • @GCKteamKrispy
    @GCKteamKrispy 2 роки тому +1

    Занялся таким-же проектом, но решил использовать 74hc... для начала (4 бит), а выше уже хочу использовать FPGA
    Чистые транзисторы, это уже слишком для меня😂 Слишком много проводов и соединений

  • @azariayehezkel9064
    @azariayehezkel9064 Рік тому

    nice tutorial for young guy

  • @VGCCCCC
    @VGCCCCC 5 місяців тому

    I heard you went to college, please continue this when you get back

  • @empatikokumalar8202
    @empatikokumalar8202 Рік тому +1

    Hi Lev;
    Which country are you a citizen of and what is your education on the subject?

  • @AdrianDucao
    @AdrianDucao 2 роки тому

    Do a lab tour please

  • @BarnardClangdeggin
    @BarnardClangdeggin 3 роки тому +1

    Let me know if you want a job at a great software development company!