Is this the most powerful 8-bit system ever? - Making an 8 Bit pipelined CPU - Part 100

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 มิ.ย. 2024
  • For the 100th video I thought I’d take some time to profile the system and compare it to the 8bit micros of my youth. I was greatly assisted by the “8-bit Battle Royale” over on Matt Heffernan’s channel and his publicly available code that I ported to the homebrew cpu.
    0:00 Introduction
    0:33 Build Tour
    1:12 Benchmark discussion
    3:08 It’s a Race!
    4:43 Results Discussion
    8:12 Capturing instructions per clock rate
    14:31 Outro, is it the fastest?
    Matt’s Channel: / @slithymatt
    8-Bit Battle Royale: • 8-Bit Battle Royale
    Porting Video on my Extras Channel: • Porting Matt Heffernan...
    chat about this and related projects on the discord: / discord
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 518

  • @weirdboyjim
    @weirdboyjim  2 ปีที่แล้ว +4

    Join us to discuss this and the other videos on discord: discord.gg/jmf6M3z7XS
    Support the channel on Patreon: www.patreon.com/JamesSharman

  • @_techana
    @_techana 2 ปีที่แล้ว +11

    WoW! This reminded me of my BS graduation project in 1998 when I designed a RISC pipelined processor and wrote an assembler for it along with an emulator. The tool was used as an educational aid for freshman students in computer engineering department.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +3

      Sounds like a cool project!

  • @mekafinchi
    @mekafinchi 2 ปีที่แล้ว +14

    Seeing such a striking difference between machines that need multiple cycles per instruction and one which can (occasionally) reach the limits of scalar thruput is quite incredible

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +6

      Thanks! Glad you found it interesting! Being excited about that difference is really why I started this project in the first place.

  • @slithymatt
    @slithymatt 2 ปีที่แล้ว +2

    Thanks for the shout-out, James! I hope to start looking at your system soon.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Well thanks for your series and making the code open source! In part due to your comments I've started work on a simulator so I'll have the means to distribute a functioning build sooner or later (Sooner = less polished interface).

    • @slithymatt
      @slithymatt 2 ปีที่แล้ว

      @@weirdboyjim If I could get a verilog implementation, that would be perfect!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      @@slithymatt I just a pc executable. Some people on my discord are trying to put together an fpga version but it's not something I'm working on.

  • @damouze
    @damouze 2 ปีที่แล้ว +9

    Nice work! Getting 3MIPS out of a 4MHz clock is certainly not bad. Not bad at all! A hundred videos in and I am still intrigued!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      Excellent! Glad to hear you are finding it interesting. 3MIPS was certainly more than I dared hope for when I started this.

  • @TroySchrapel
    @TroySchrapel 2 ปีที่แล้ว +69

    Fantastic result, James ...and to do it with discrete logic, incredible! Happy 100th. I wonder how many hours that is?

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +25

      Thanks Troy! But stop asking awkward questions about how many hours went into it, I don't want to know ;-)

    • @TroySchrapel
      @TroySchrapel 2 ปีที่แล้ว +12

      @@weirdboyjim I'm wondering how many hours I've spent watching. 😂

    • @thej3799
      @thej3799 2 ปีที่แล้ว +1

      I have a piece of the original cray 1. Dicreet components can do enough to need a new term of supercomputer.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      @@thej3799 Nice! Any idea what that bit does?

    • @thej3799
      @thej3799 2 ปีที่แล้ว +2

      @@weirdboyjim its from one of the logic boards that surround the inner column. It's not a complete piece, but I'm mostly certain it's part of what ever goes for the cpu part. Whatever it was is hard to tell, cray 1 was very modular. Don't know if element of that, or a part that was prone to more heat and failure. Why else design it so it could be easily swapped in or replaced.

  • @VioletGiraffe
    @VioletGiraffe 2 ปีที่แล้ว +1

    Very interesting, the artificial NOP and instruction fetch stalling very well demonstrates why an instruction cache is needed, especially for a superscalar CPU.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      That's exactly what I wanted to demonstrait!

    • @TheDrunkenMug
      @TheDrunkenMug ปีที่แล้ว

      @@weirdboyjim any plans on perhaps integrating an instruction cache register into your current CPU design? Very interesting performance nonetheless 👍🏼

  • @oldskool9783
    @oldskool9783 2 ปีที่แล้ว +50

    Curious to find out how fast you can clock this. Lovely processor, I feel blessed I was able to watch you bring it to life.
    Bringing this over to VHDL could immortalize your design. OpenCores comes to mind.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +21

      Some people are already working on an FPGA version. For the clock rate I'm very interested in understanding any architectural limitations with regard to this. The ultimate limit will be the memory chips though, they tend to be slower than other things.

    • @maeanderdev
      @maeanderdev 2 ปีที่แล้ว +3

      @@weirdboyjim Isn't that something that you could just try by using i.e. a function generator instead of a crystal as your clock source and step up until a test fails?

    • @lawrencemanning
      @lawrencemanning 2 ปีที่แล้ว +5

      @@maeanderdev temperature is also an important variable. I’m no expert but these things are usually best done as a paper exercise vs a practical one where subtle differences in particular parts which, by luck and not design, deviate from their specification.

    • @ivanscottw
      @ivanscottw 2 ปีที่แล้ว +1

      @@weirdboyjim Then you are going to start working on a memory caching mechanism ;)

  • @Lilithe
    @Lilithe 2 ปีที่แล้ว +12

    That's amazing. It was really fun to see the step through of the pipeline!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +3

      Glad you liked. Sometimes I let bits of code I'm working on run in trace mode for a while just to get a visual feel for how well I'm using different parts of the cpu.

  • @m1geo
    @m1geo 2 ปีที่แล้ว +8

    Thanks for your hard work! I really wanna see where the project goes (and future projects)! I know this won't go too far with the costs, but I'm sure you'll put it to good use!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +4

      Aww man that's too much! I have always appreciated all the nice comments and feedback from you!

    • @m1geo
      @m1geo 2 ปีที่แล้ว +4

      @@weirdboyjim I appreciate the videos! Please, use the money to buy more ICs, solder paste, connectors, and PCBs, or, packs of pens for the next design! 😂

  • @wouterdebie6754
    @wouterdebie6754 2 ปีที่แล้ว +1

    I absolutely love what you've done and always look forward to new episodes. You have all the reason to be proud!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks Wouter, I appreciate the support!

  • @danukepaintball
    @danukepaintball ปีที่แล้ว +1

    I love watching the LED's and how it shows what's going on. Really awesome setup. I kind of want one on my wall just blinking away.

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว +1

      Thanks! Mounting it on my wall is actually the plan once it's done!

  • @Mr.Glitch
    @Mr.Glitch 2 ปีที่แล้ว +6

    Congrats on the 100th video! Loving the series. :)

  • @piclife1178
    @piclife1178 ปีที่แล้ว

    Amazing work. I have really enjoyed watching your videos.

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว

      Thanks! Glad you are enjoying!

  • @misterretrowolf1464
    @misterretrowolf1464 2 ปีที่แล้ว

    Excellent work! Amazing up to 100! Really appreciate the deep dive into the bench-marking. Thanks.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      I'm pleased you found it interesting!

  • @rockytrh
    @rockytrh 2 ปีที่แล้ว

    This is such a cool series. I've not gotten to watch everything yet, but working my way through it. I've managed to get a good handle on basic CPU design, but pipelining was always just out of my grasp. Thanks for showing us the work!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      I'm pleased it was interesting!

  • @davidtaylor6124
    @davidtaylor6124 2 ปีที่แล้ว

    You've put an amazing amount of work into this! Really impressive.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks, Glad you have found it interesting!

  • @artoheino7315
    @artoheino7315 2 ปีที่แล้ว

    Great work James, I will be following your work for sure!!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Great to have you along Arto!

  • @UnexpectedMaker
    @UnexpectedMaker 2 ปีที่แล้ว +1

    Wow, what a great result - well done mate! Time to start work on your 16bit CPU !!!!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks Seon! There will be other builds in the future, but not a 16bit one. ;-)

  • @RoamingAdhocrat
    @RoamingAdhocrat 2 ปีที่แล้ว +1

    This is an astonishing achievement - well done! Really brings home why the pipeline is so useful.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks Roaming Adhocrat, glad you are still enjoying the series!

  • @jerril42
    @jerril42 2 ปีที่แล้ว

    Awesome results. Congratulations on both the speed of your CPU and reaching 100 amazing episodes for it. Thanks James, take care.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks Jerril! Thanks for all your support through the series!

  • @nicolasfleury6232
    @nicolasfleury6232 ปีที่แล้ว

    Awesome job and fantastic series. I am especially amazed at the way you approach things and how you managed to bring you original design to reality. Like I heard someday in a movie which name I cannot even remember : „I like how your brain work“ ;) very inspirational! Thanks a lot for sharing it all. And please go on !!

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว

      Thanks Nicolas, glad you are finding the series interesting.

  • @stewartclark3259
    @stewartclark3259 ปีที่แล้ว

    This is a fantastic labour of love, James. I've been binge-watching the whole series including the VGA implementation over the last 2 weeks and finally gotten to the end.
    I've really enjoyed your journey with logic, layout, soldering, video editing and presentation. All done with a good dose of British self-deprecation! Your presentation skills are excellent in my opinion. Certainly they are superior to many university lecturers I had on the same topic back in the mid 90's! :)
    Your coding skills are head and shoulders (and then some!) Above my own but I share your curiosity for just how far ideas can be taken using the hardware of the day and newer ideas. I wrote down a list of about 10 ideas (for improved signal integrity, latency reduction, stability) and another 10 architectural ideas that were used in the 8-bit days (almost! ;) ) that could give your project another huge performance boost. Probably way too much text to drop into a comments section so perhaps let me know if you're interested.

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว

      Thanks Stewart! That's some high praise! I'm a curious about your ideas, but I have a huge pile of ideas myself which I have to hold back on in order to keep going with this one. My current plan is to get this build finished roughly with the current plan and then embark on a new project. Needless to say more ram, less memory contention, more gpr's and better addressing modes are high on the list.

  • @LockFarm
    @LockFarm 2 ปีที่แล้ว

    Fantastic results - genuinely impressive work, and a great project.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thank you very much Andy!

  • @BrownianMotionPicture
    @BrownianMotionPicture ปีที่แล้ว

    You're a joy to listen to, and this creation is a joy to behold. Cheers.

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว +1

      High Praise! Glad you liked it!

  • @petesapwell
    @petesapwell 2 ปีที่แล้ว

    Good to see you back, and of course congrats on the 3 mips :)

  • @z3my4l
    @z3my4l 2 ปีที่แล้ว

    Excellent video! Subbed.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks, hope it lives up to expectations!

  • @greje656
    @greje656 2 ปีที่แล้ว

    Such a cool achievement. Well done and thanks for those fantastic videos

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks! It's great that people are enjoying it!

  • @MeinDeutschkurs
    @MeinDeutschkurs 2 ปีที่แล้ว

    This is amazing! Cool project!! 👏👏👏

  • @dherrendoerfer
    @dherrendoerfer 2 ปีที่แล้ว

    Wow, this is really impressive ! I really love your attention to detail when you explain things and I really love coming back for the know-how you share. I benched my own version of the X16, and it came in exactly as predicted, running at a simulation 4Mhz with no other real hardware than a 65C02 CPU. But your 1.3 is just so out of this world comparably.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Interesting Thanks Dirk, have you done much coding on the x16? Obviously that graphics fpga would have me beaten any day for pixel moving.

    • @dherrendoerfer
      @dherrendoerfer 2 ปีที่แล้ว

      @@weirdboyjim I've done some experiments to find out more of how it's supposed to work - since I don't have a real vera, I need to go by the emulation code that is freely available. I'm currently spending way much time getting the simulation to work like hardware, and getting the hardware to not notice the simulated bits.

  • @th3pr0ject
    @th3pr0ject ปีที่แล้ว

    Incredible. Awesome work.

  • @0xABADCAFE
    @0xABADCAFE 2 ปีที่แล้ว

    I am surprised I only seem to have discovered this channel today. Brilliant stuff. Looking forward to watching the preceding 99!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Welcome! Hope it lives up to expectations.

    • @0xABADCAFE
      @0xABADCAFE 2 ปีที่แล้ว

      @@weirdboyjimJust watching your first counter build and it already is.

  • @peter.stimpel
    @peter.stimpel 2 ปีที่แล้ว +5

    Congrats on the 100, and congrats for the inofficial crown in performance. Reminds me of the crazy headaches we had in the 80s to create some nice pixel graphics ...

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      Thanks Peter! Pixel graphics was a real artform back in the day!

    • @thej3799
      @thej3799 2 ปีที่แล้ว +1

      My dad won a contest with him early EGA so 16 colors, The software was called Dr Halo I loved playing with it but he created this graphic practically pixel by Pixel and it was amazing ended up winning some kind of contest and we got like free meals at expensive restaurants and all kinds of other stuff for the family it was pretty cool and when I think back using the tools we have today it makes it all that much more incredible because it didn't feel like 16 colors.
      The machine was an IBM clone 286 that had the math co processor. It was 12 megahertz but it had an absolutely astounding 2 megabytes of RAM and eternally pissed me off because Wolfenstein would not run on EGA but I know it could run on the 286 with VGA.

  • @rauljvila
    @rauljvila 2 ปีที่แล้ว +12

    Congratulations, those are really impressive results!
    You should indeed be proud.
    I'm still surprised that, after so many videos, the subscribers and views on this channel aren't at least an order of magnitude larger.
    Thanks for all the great content!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      Thanks Crul, I appreciate the kind words. To be honest, I'm happy that people watch and find it interesting. I suspect I lack the personality type and presentation skills to make it really big.

    • @rauljvila
      @rauljvila 2 ปีที่แล้ว +2

      ​@@weirdboyjim From what I've seen, I'd say the ways of TH-cam's mighty algorithm are unfathomable. You can, and should, be proud of the content, in quality and quantity.
      Regarding the numbers, good luck! It's mostly out of human control :)

    • @fintux
      @fintux 2 ปีที่แล้ว +1

      @@weirdboyjim don't sell yourself short here. It is great to have a channel that doesn't give a sensory overload, that focuses on the actual topic and from which one can learn something new. I don't think there's any issue with the presentation or your personality. It can be just almost randomness with the algorithm, or maybe it is a bit niche topic (where the communities tend to be smaller but also tighter) or anything like that.
      Most channels also have a small call for action in each video to remind people to subscribe, hit the notification bell and leave a comment (afaik that helps a lot with the algorithm), and if I remember correctly, you don't have that (writing on a phone so can't check easily right now). Maybe also adding a little teaser about what's coming up next (though I think you've already done this usually).
      Or just ignore the stats and focus on producing more of the great content.

    • @feelincrispy7053
      @feelincrispy7053 2 ปีที่แล้ว

      @@weirdboyjim definitely don’t sell yourself short. Be confident in your work and presentation and the viewers will come naturally.

    • @axelBr1
      @axelBr1 ปีที่แล้ว

      @@fintux So adding Like and Subscribe has an effect on the TH-cam algorithm? Explains why everyone has it, despite you only having to be on TH-cam for 10 seconds to workout the purpose of Liking and Subscribing!

  • @3vi1J
    @3vi1J 2 ปีที่แล้ว

    Love the design, and the results! Congrats on building this very cool system. Subscribed and off to check out your other videos!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thank you very much! Hope the others live up to expectations!

    • @3vi1J
      @3vi1J 2 ปีที่แล้ว

      @@weirdboyjim They absolutely do! I had been considering working up to the same sort of project myself after watching Ben Eater's videos. I'm sure I'm going to learn a lot from your experience. Thank you so much for sharing!

  • @Archimedes75009
    @Archimedes75009 2 ปีที่แล้ว

    That's ... fascinating and awesome.
    Congratulations.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thank you very much!

  • @theoriginalrecycler
    @theoriginalrecycler ปีที่แล้ว

    Had to watch again. And I know I will watch it again.

  • @FrankGevaerts
    @FrankGevaerts 2 ปีที่แล้ว +1

    Excellent work! I'll admit that I didn't expect this big a margin.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks Frank! I was hoping to would put on a good showing but I certainly wasn't counting my chickens against the X16 and it's higher clock rate.

  • @m1geo
    @m1geo 2 ปีที่แล้ว

    Fantastic work, James! Love it! Keen to see it progress!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks George! Hope the new data I sent helps with your experiments.

    • @m1geo
      @m1geo 2 ปีที่แล้ว

      @@weirdboyjim it definitely will! I'm still strapped for time this week, but I'll be back on it in the next few days! As soon as I have something worth sharing, I'll be in touch!

  • @NuttySwiss
    @NuttySwiss 2 ปีที่แล้ว

    Awesome! Congratulations!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thank you so much 😀

  • @GodmanchesterGoblin
    @GodmanchesterGoblin 2 ปีที่แล้ว

    A great video, and a great way to mark the 100th episode. Mandelbrot plots are always cool. It's fascinating how the incorporation of pipelining improves the IPC performance compared to machines without it. Of course, un-rolling loops and similar tweaks can also help further if the algorithm allows and one has the patience. ;)

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks! Elements of the design came from my own experience optimizing code and tweaking the instruction set to make things easier.

    • @mikafoxx2717
      @mikafoxx2717 5 หลายเดือนก่อน

      ​​@@weirdboyjimKind of like ARM, where Sophie both programmed BBC basic, and also the instruction set for ARM, without anything too unnecessary. I'm sure they also got input back from the implementation for what's easy or not.
      If you ever get into another build, I'd love to see perhaps a standardized ISA like RISC-V or MIPS or some such, made into a homemade CPU. The instruction set and architecture are a lot more disconnected than you'd really think, when you get more advanced.

  • @retrocomputeruser
    @retrocomputeruser 2 ปีที่แล้ว

    It's got to be the fastest 74 logic 8 bit surely ?.
    And to say it has been designed, built and programmed together with VGA, sound, and UART, again all by 74 series logic by just one man is extremely incredible.
    I would suggest naming it _"The Sharman 74"_ . The series has been brilliant from start to finish and I will watch them all again. Fantastic. 👏👏👏👏

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Would be great if that's true, but I can see a few ways It could be made faster so I'm not fool enough to make any specific claims.

  • @Quxxy
    @Quxxy 2 ปีที่แล้ว +1

    Congratulations, that's an amazing result. It does make me wonder what sort of speeds would be possible if the CPU could be fabbed on a comparable process.
    Oh, and happy 100th video in the series.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      Thanks Quxxy. Well we can predict the speed at a higher clock rate, but I'd more more inclined to refine the design further before chaining the format. Some of my choices are more suited to describe chips than a more compact implementation.

  • @RomeoG39
    @RomeoG39 2 ปีที่แล้ว +2

    What an amazing project! When I was young, I thought I wanted to be a microprocessor designer, but this stuff is way over my head.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      I think I know just enough know to vaguely see the vast complexity that must be hidden in modern cpu's.

  • @InfiniteBrain
    @InfiniteBrain 2 ปีที่แล้ว +2

    Not sure how I've missed this project but it's fantastic that you can get the performance and display with 8 bits on discrete logic.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks! Well I'm glad you found it now!

  • @williampmcd8548
    @williampmcd8548 2 ปีที่แล้ว

    Impressive work, well done!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks for the visit

  • @UsagiElectric
    @UsagiElectric 2 ปีที่แล้ว

    Oh yeah, that's awesome!
    I knew this thing was a beast, and seeing it absolutely smoke the competition brought a massive smile to my face!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks! And you are big league enough now that studio gave me a 2nd notification!

  • @djc1402
    @djc1402 2 ปีที่แล้ว

    A very impressive result and a great 100th video. Shows how pipelining is far more efficient at running code than micro-coded CPUs.
    I watched the 8-bit Battle Royale when it first came out and wrote a Mandelbrot for the CSCvon8 and got it to do 32x22 with max 16 iterations in about 2 seconds running at 6.3Mhz. Took me quite a while to get the 16x16 bit multiply to work but when I got it right it was magical to see the Mandelbrot set draw on the screen the first time.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks David and nice work! That actually sounds very fast for that architecture. Maybe I should get you to optimize my code ;-)

    • @djc1402
      @djc1402 2 ปีที่แล้ว

      @@weirdboyjimThe code isn't very optimised but the CSCvon8 'cheats' as it has a big ALU ROM with 8x8 bit multiply instructions, which helps a lot in this case. I've also got 160x120 with 64 iterations to finish in about 2 mins.

  • @AmauryJacquot
    @AmauryJacquot 2 ปีที่แล้ว

    fantastic, congratulations !

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Glad you like it Amaury!

  • @hicknopunk
    @hicknopunk 2 ปีที่แล้ว +2

    The 6502 is my favorite processor 😍 love what you got here!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks Hicknopunk!

  • @marlonlacert8133
    @marlonlacert8133 2 ปีที่แล้ว

    Great work!

  • @duality4y
    @duality4y 2 ปีที่แล้ว

    I have really been loving this series.

  • @AntonioBdeJesus
    @AntonioBdeJesus 2 ปีที่แล้ว

    What a fantastic job! Thanks for sharing.

  • @u9vata
    @u9vata 2 ปีที่แล้ว +2

    If I understand this well, (similar to) this could have been built back when the selected CPUs were the stars and this compares really favourously.
    Huge work in outperforming the 70s chips with discrete logic - likely an achievment for life! Keep on good work!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Yeah, most of the logic chips were there. Memory chips were more of a problem, we are spoiled now. Each of my chips would have been several with a demultiplexor to select them.

  • @Philip8888888
    @Philip8888888 2 ปีที่แล้ว

    Congratulations! It's a huge milestone.

  • @SuperAnthony1982
    @SuperAnthony1982 2 ปีที่แล้ว +1

    Wow! thats so cool 😎 james.. I have always had day dreams wondering how far 8 bit could be have been pushed without 80s budget constraints so anything like this I find fascinating.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Yeah, many of these chips were around (or equivalents) in the 70's but some were extremely expensive.

    • @Zadster
      @Zadster 2 ปีที่แล้ว

      If you want an indication, look at the history of the ARM processor. Okay, it is 32-bit, but then if you are chasing performance, you don't stay with 8 bits. 25,000 transistors, virtually no budget, very few resources, but 2 really smart people.

  • @twobob
    @twobob 2 ปีที่แล้ว

    solid mate. And no bullshit. Extra marks.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks Twobob Club, appreciate it!

  • @abdelrahman5094
    @abdelrahman5094 ปีที่แล้ว

    I discovered your channel lately but i have to watch the full series

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว +1

      Hope it lives upto expectations!

  • @daskasspatzle2396
    @daskasspatzle2396 2 ปีที่แล้ว

    Congratulations, you have earned your success ;-)

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thank you so much 😀

  • @axelBr1
    @axelBr1 ปีที่แล้ว

    It's amazing that you can out perform a CPU chip with all the transistors packed together with your CPU with the components spread out over 10s of cm. Fantastic project. And your presentation skills a perfect for a project like this.

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว

      Thanks Alex! I'm glad you are enjoying!

  • @jaynesadden6081
    @jaynesadden6081 2 ปีที่แล้ว +2

    Happy 100th! 🥳🥳

  • @Richardincancale
    @Richardincancale 2 ปีที่แล้ว +1

    Excellent result! Some of my first computing was on a CDC6600 which had pipelining and some asynchronous operations - did 3 MIPS but with 60 bit words and core memory. One of the most important architecture inventions in the 1960s was of memory cacheing - why not give that a try? If your code is doing a lot of localised fetch/store ops it can help a lot to resolve the cpu/memory speed mismatch.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      This CPU is reaching the boundary of it's designed parameters. I plan on future builds that will experiment with more advanced concepts but I don't want to keep iteratively redesigning this one, that's no way to make a nice clear architecture. A cache for example needs logic that can handle a cache miss everywhere you are accessing memory, as a retrofit that is tough.

    • @Richardincancale
      @Richardincancale 2 ปีที่แล้ว +1

      @@weirdboyjim Yup, understand that. Also it depends on the memory interface and how it’s architected - if it’s synchronous and just waiting for the data to show up or getting on with other stuff meantime.

  • @alk7934
    @alk7934 2 ปีที่แล้ว

    That thing is amazing. I am amazed.

  • @ratinabox1065
    @ratinabox1065 2 ปีที่แล้ว +1

    wow, it looks gorgeous. It is so well layed out. I know exactly how it would look had I made something similiar

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Yes! It roughly matches my sketch before I started.

  • @another3997
    @another3997 2 ปีที่แล้ว +1

    What a fantastic project and an awesome achievement. It's hard to believe that this was how early processors were designed and tested, with lots discrete chips on boards, all spread on a desk. It's even more amazing that today, all of that can be fitted in to a tiny little package smaller than a fingernail and can be purchased for pennies. My first computer was a Sinclair ZX81, which I thought was a miracle of miniaturisation. 😁

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      The ZX81 was one of the first computers I had regular access to, horrible little thing in hindsight but felt like magic at the time.

  • @xequals-pc1wl
    @xequals-pc1wl ปีที่แล้ว

    Yeah, I'm just wildly impressed. I was also glad to see that the 6502 , as I always expected, turned out to be the boss of the home micros :-).

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว

      Glad you enjoyed it! 6502 was a great processor, especially relative performance in terms of gate count and cost.

  • @BenjaminScherrey
    @BenjaminScherrey 2 หลายเดือนก่อน

    Outstanding project. I originally learned to program on an Apple II so I appreciate just how incredible the results you've attained are here. If you have hardware support for two stacks and implement a forth for it you'd have an extremely productive computer in terms of time from concept to effective and efficient implementation.

    • @weirdboyjim
      @weirdboyjim  2 หลายเดือนก่อน +1

      Thanks! I'm not changing the hardware of this cpu now but I do have plans for a future build. In 64k higher level languages tend to be quite restricted by memory. On this cpu though, you could use one of the pointer registers in a similar way to another stack pointer, but pointer + offset addressing is a but more complex to do in code.

    • @BenjaminScherrey
      @BenjaminScherrey 2 หลายเดือนก่อน

      @@weirdboyjim that's what's amazing about Forth. Once you hit above 8k your Forth apps are likely to be lower in memory usage than hand written assembly. It's ideal for resource restricted environments. I definitely look forward to seeing your future efforts. If there was a good simulator of your current one I bet it would be quite quick to get an eforth port done to it.
      Will you eventually pack this thing up into a plexiglass case and hang it up operationally on your wall? It's got a beautiful esthetic! I'd buy one!

  • @akohlbecker
    @akohlbecker 2 ปีที่แล้ว

    Awesome results!

  • @edgeeffect
    @edgeeffect 2 ปีที่แล้ว +1

    100 episodes! Ace! You went from something to watch when I was bored in hospital to one of my favourite TH-cam channels in about 3 episodes. Keep up The Great Work! :)
    In "the great debate" at college, we always said the BBC beats the spectrum and the 64!
    When they break down into CPU type, it makes sense.... Lots of pipelining wins, and smidge of pipelining comes second, no pipelining loses. Shame, I was always quite a fan of the Z80 back in the olden days.
    When I'm in 8-bit land, I'm doing assembler on AVR microcontrollers... it'd be very interesting to see where that would come in the leader-board.... need some way to get VGA out of it without eating every single one of it's clock-cycles though.

    • @janikarkkainen3904
      @janikarkkainen3904 2 ปีที่แล้ว

      You can use the timer interrupt to generate horizontal sync, and by extension also the data out and vertical sync to get VGA output with AVR

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      Thanks Edge. I suspect you'll find my lead disappears with some of those modern microcontrollers, they have a far more modern design.

  • @DavidLatham-productiondave
    @DavidLatham-productiondave 2 ปีที่แล้ว

    Congratulations!

  • @hicknopunk
    @hicknopunk 2 ปีที่แล้ว +1

    Thank you, I just found a channel to watch during my insomnia!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Hope it lives upto expectations. But be warned, you start thinking about this stuff and you'll be ordering TTL chips by the end of the month ;-)

    • @hicknopunk
      @hicknopunk 2 ปีที่แล้ว +1

      @@weirdboyjim 🤣🤣😂 I have the sanity to limit that madness to occasionally making a 6502 from a kit. I am not by any means good, but I am slowing learning 6502 assembly from YT. i had a C64 and a NES growing up and they made me fond for the 6502. The Z80 is another great cpu though.
      Added the word learning

  • @EvilKimau
    @EvilKimau 2 ปีที่แล้ว

    That's an awesome result 😊👍

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks Claire! Hope you have a good time next weekend! Poor timing that I'll be away when you visit my city!

  • @jimmy_jamesjams_a_lot4171
    @jimmy_jamesjams_a_lot4171 2 ปีที่แล้ว +1

    WOAH!!?! Brings me back to my Intel 8051 microcontroller frustrations! The Assembler / development environment / ‘emulator’ ran on a DOS terminal. And so it was always a riddle to me, whether the ASM program was really yielding clock cycles and values that were true to not just it’s own software programming, but if whether that software was seriously delegating every 8051 resource appropriately, in the same order, initializing it’s registers, clearing its carry(s), setting up for parity, etc etc. And doing this initialization process just as some specific microcontroller’s data sheets had described. I find it rather amusing, the remaining two camps still to this day, who either prefer the clock’s ticks to be left up to X-tal wiggles, or by way of the RTC, driving those cycles over Transistor-Transistor-Logic. It seems to me
    That the TTL solutions are better geared for say a clock radio or a microwave oven, and the crystals are something that I would have to hand and so I’d grab it. THANKS A BUNCH FOR SHARING THIS, VERY GREAT LECTURE!!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks Jimmy, glad you've been finding it interesting.

  • @nynexman4464
    @nynexman4464 2 ปีที่แล้ว +1

    I was wondering what you'd do for the 100th "episode". Benchmark is a great idea!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks! Glad you liked it.

  • @CheddarPaul
    @CheddarPaul 2 ปีที่แล้ว

    Congrats on the 100th video mate!

  • @thebasicmaterialsproject1892
    @thebasicmaterialsproject1892 2 ปีที่แล้ว

    amazing build.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks! Glad you enjoyed it!

  • @stephenwhite506
    @stephenwhite506 2 ปีที่แล้ว +2

    Congrats on the 100th, love your work.There is a modern Z80 called the eZ80. It can run at 50Mhz and has a 3 stage pipeline. I wonder how it would do running the Z80 version of the benchmark. One day I will have to give it a try,

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +3

      I'd be interested to here. I imagine it will trash me, especially at that clock rate. That was kind of the point I was making, I compare well against the decades old devices of my youth but I have no illusions against anything designed more recently by an expert.

  • @mrkosmos9421
    @mrkosmos9421 2 ปีที่แล้ว

    This is stupendously good! Blows the hat right off the Commander, and running at 4MHz no less... Now I really want to go back and watch how the pipelines work.
    Also I do wonder how much FPGA space an optimized version of your architecture would require. And I kind of want to try writing code for it!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thanks! I've started work on a simulator so that maybe something I can share at some point.

  • @ARBB1
    @ARBB1 2 ปีที่แล้ว

    Great stuff.

  • @cedAuz
    @cedAuz 2 ปีที่แล้ว

    Hi james. Amazing 100th. Have you looked back at your first videos ? It's amazing what you have achieved. Both in terms or CPU and in terms of video quality and editing. Looking foward to the 1000th 😉

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks Ced! Oh man, some of my early videos make me cringe! I may not be great at presenting but at least I'm better than that old James! :-D

  • @HippoXXL
    @HippoXXL 2 ปีที่แล้ว

    Is it geekish to say that this is really cool stuff? 😉
    Greetings from germany,
    Marcus

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Yes, Yes, it is! Welcome ;-)

  • @CAESARbonds
    @CAESARbonds 2 ปีที่แล้ว

    Cool build.

  • @MarcelHuguenin
    @MarcelHuguenin 2 ปีที่แล้ว

    Awesome! Great result 👍🏻

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thank you! Cheers!

  • @damianvila
    @damianvila 2 ปีที่แล้ว +8

    Just found this channel, and I've been binge watching the series. It's amazing. I hope when it's completely finished, this computer is offered as a kit as an education resource, the same way the Cerberus 2080 is. It could be an amazing resource. I'd love to assemble one and learn from it. I would also love to know if this design can be implemented using CPLDs or an FPGA. Cheers!

    • @awesomecronk7183
      @awesomecronk7183 2 ปีที่แล้ว +2

      Certainly you could do most, if not all of this on an FPGA, though a single CPLD would probably be far too small. There's a few folks on the Discord that have written PC emulators for it as well.

    • @damianvila
      @damianvila 2 ปีที่แล้ว +2

      @@awesomecronk7183 Thanks for the info. Yes, I was not implying just one CPLD, but several, each with a role. I’ll join the Discord, but I despise the platform, since it’s closed, and the info not publicly available the way forums are. A lot of valuable information is being put there, and you can’t find that using a search engine. Pity it’s replacing the more useful forums…

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      Getting copies of this hardware out to people might be difficult, but I have started work on a simulator that serve one day.

    • @awesomecronk7183
      @awesomecronk7183 2 ปีที่แล้ว +1

      @@damianvila I agree about that, but Discord does have it's uses. For one, it's far faster-paced than forums are, since chatting is real-time. That said, it's like having a conversation at my house, vs writing down our messages and posting them at the library. Yeah, it's harder to share that conversation with the world, but you can communicate in real time, so a lot more gets done. Fortunately, I don't think it will ever fully replace forums.

  • @DamianReloaded
    @DamianReloaded 2 ปีที่แล้ว

    Very nice!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Thank you! Cheers!

  • @Dave5281968
    @Dave5281968 2 ปีที่แล้ว

    The pride you exhibit regarding this computer is VERY justified! Your work will not only help many people in the future understand the low level details of how computer systems function, but will also show the magic of following a dream and making it reality. If I had enough thumbs you would get a ten thumbs up from me for this series. (I think it is probably the best digital design series out there.)
    I'm personally not surprised at your results on the Mandelbrot set. The old 8-bit CPU's were designed either to fit what technology of the day could cram into a single chip, or were designed to a price point. It would be interesting to see how your processor stacks up to even some 32-bit processors of the day, like the Motorola 68000 or even the first ARM processor. I think you might beat the 68000, and come in for a close second to the ARM chip.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      High praise there Dave. Yeah, comparisons are difficult. The microprocessors we are comparing to here were revolutionary not for performance but for being a big part of bringing the entry point right down.

  • @devcybiko
    @devcybiko 2 ปีที่แล้ว

    Fascinating work. I'm surprised your processor - spread across your desktop - is faster than the classic 8-bit. I also appreciate the 'normalized' performances. I was surprised the Z-80 performed so poorly. Congrats on a great result. I'm subscribed - continued success!

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Glad you found it interesting Gregory!

    • @johnm2012
      @johnm2012 6 หลายเดือนก่อน +1

      The Z80's ALU is only 4 bits wide and it takes a lot of clock cycles to do almost anything.

    • @devcybiko
      @devcybiko 6 หลายเดือนก่อน

      @@johnm2012 😯

    • @johnm2012
      @johnm2012 6 หลายเดือนก่อน +1

      @@devcybiko TH-cam won't let me post a link but you can search for "Z80 ALU" and look for Ken Shirriff's blog. The Z80 Wikipedia article should mention it too, if it's worth it's salt. Obviously, all designs are compromises, but this seems like an odd trade-off to me.

  • @your_utube
    @your_utube 2 ปีที่แล้ว +1

    Great to see the results here. I was a Z80 man myself in the 1980's, with the likes of TS1000 (AKA Z81) and Spectrum 48 within my repertoire of experience. I went straight to an IBM clone after that during my CS studies, but the Spectrum gave me lots of pleasure. One of my favourite games was Basil the Great Mouse Detective, chess, and a few others. Wrote my own 3-line editor. I tried making a full-screen editor, but it was painful watching the screen repainting after each keystroke. 3 lines were perfect. Boy what a trip down memory lane and I have you to thank for that James. Will you be re-inventing a sort of hard-drive for the computer? I would watch such a series. At this point I almost think you can build anything.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Ahh yes, you mean the ZX81, in hindsight it's incredible how little extra they managed beyond just the cpu to keep it cheap! I assume the editor was in basic? Really needed at least the screen update routines in assembler.

    • @your_utube
      @your_utube 2 ปีที่แล้ว +1

      ​@@weirdboyjim Yes all of it was in Basic. One of the most useful feaures of the Spectrum basic was the fact that you could use a variable in place of a literal line number. This means that when you needed to branch to a sub at line 100 (say) to do screen update, you could at the top let screenUp = 100 and when you needed to call it use Gosub screenUpd. It may seem trivial, but it made the code easier to write and read. I still cannot today figure out how I learned to write code in a language without If then and else. There was no else in basic...??? Admittedly I only learned that construct later when I lerned Pascal as part of my CS course. It took a few days to write the editor and when I later refined it, I could save documents and read them using my editor, and print them out. 48K???

  • @Gecko1993HogheadIncOfficial
    @Gecko1993HogheadIncOfficial 2 ปีที่แล้ว

    Dude, this machine is incredible! And at 100 parts no less?! How did I miss this???
    Regardless, I hope you keep up with making this the One Computer To Rule Them All!
    ...my question is: what will this incredible miracle be named once it is all completed?

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks Gecko! Ahh, it really does need a name but I've not come up with anything that sits well with me. Happy to take suggestions.

  • @MeriaDuck
    @MeriaDuck 2 ปีที่แล้ว

    This being the first episode I watch (thanks youtube suggestions!), I guess I have some catching up to do. This sounds like a project I once though about, but am lacking the patience and focus for.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      Welcome! Hope the rest of the videos live up to expectations!

  • @fintux
    @fintux 2 ปีที่แล้ว

    What a great achievement!

  • @ferencszabo3504
    @ferencszabo3504 2 ปีที่แล้ว

    Remarkable result

  • @Geenimetsuri
    @Geenimetsuri 2 ปีที่แล้ว

    Excellent work! This is nothing short of amazing!
    Say, does that Mandlebrot use integer or floating point arithmetic?

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +1

      It's 16bit fixed point using 8bits of faction. If you click on the card for the code port video on my second channel I go into some of that.

    • @Geenimetsuri
      @Geenimetsuri 2 ปีที่แล้ว

      @@weirdboyjim Thanks!
      Fascinating to see how you can do stuff like that on an 8-bit comp, let alone so fast!

  • @sjwatt
    @sjwatt 2 ปีที่แล้ว +6

    So the true race is IPC, not MIP. This is a pretty impressive result for a single pipeline single alu cpu, a more dynamic register file with an in-pipeline register renamer would boost it a bit, so would a dual headed ALU. I’m also starting to understand why so many CPUs did a multi bus design instead of a main bus.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +4

      It's all interrelated. Mips is IPC times clockrate. It's even more complicated when you think about the instruction themselves. In my cpu for example, if I want to set A to 0FF I could do either "mov a,0FF" or "xor a,a","dec a". Both will take 2 cycles and use 2 bytes of memory. The first one however is 1 instruction and the later 2, which is better? I could fudge the results a lot like this so in the end the only real test is to do something serious and see how long it takes. Hopefully the results here speak for themselves.

    • @sjwatt
      @sjwatt 2 ปีที่แล้ว +1

      @@weirdboyjim the only real way to measure instruction effectiveness is with real world examples, which is why I’d only trust a branched jump table implementation as a measure, because it’s probably the most common bottlenecking pattern in software design.
      Edit for clarification: a branched jump table that utilizes pointer arithmetic

  • @mrwidget42
    @mrwidget42 2 ปีที่แล้ว +1

    That's really fantastic. It may be an faq but since you have most of the logic transferred from breadboard to pc's, do the Gerber/Eagle/kicad files exist somewhere? Or even the schematics?

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      It's on the channel description page. I do my design work on easyeda so my profile there (or on oshwlab) has everything I've made public. I tend to release stuff after I've tested it working. Poke me on discord if I haven't released something you want to take a look at. oshwlab.com/weirdboyjim

  • @MarkSeve
    @MarkSeve ปีที่แล้ว

    I concur, impressive considering you are using discrete logic. Well done.

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว +1

      Thanks Mark! Glad you enjoyed it.

    • @MarkSeve
      @MarkSeve ปีที่แล้ว

      @@weirdboyjim I did. Now to add SIMD instructions. =)

    • @MarkSeve
      @MarkSeve ปีที่แล้ว

      @@weirdboyjim I did very much. Now to add SIMD instructions and a DDR interface for more memory.

  • @tmbarral664
    @tmbarral664 2 ปีที่แล้ว +1

    Awesome :) Would be great if the next step would be to create the cpu inside a chip ;) fpga, maybe ?

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว +2

      There are some people on the discord channel who are already doing that. It's not part of my plan for this design but is very much planned for it's successor.

  • @RyanDanielG
    @RyanDanielG 2 ปีที่แล้ว

    Holy.Crap(well done)

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thank you Ryan! Glad you liked it!

  • @georgysb
    @georgysb 2 ปีที่แล้ว +1

    Amazing work! My 3x breadboard Z80 based hobby computer was stable at 10MHz though.

    • @weirdboyjim
      @weirdboyjim  2 ปีที่แล้ว

      Thanks. The biggest limiting factor on mine is the rom chips, they have a 140ns access time so cap the speed at about 7mhz even if everything else was instant.

    • @georgysb
      @georgysb 2 ปีที่แล้ว

      @@weirdboyjim In my case EEPROM AT28C256-15PU with access time as high as 150ns is perfectly readable at 10MHz, though I have to switch system clock to 7.3728MHz when I need to write to it in situ.

  • @skilz8098
    @skilz8098 ปีที่แล้ว

    That's not just a piece of engineering, it's a work of art too!

    • @weirdboyjim
      @weirdboyjim  ปีที่แล้ว +1

      Very kind words!

    • @skilz8098
      @skilz8098 ปีที่แล้ว

      @@weirdboyjim Well that's just the thing, look at the complexity of what we consider a simple system or simple architecture today. Yet this younger generation they were practically born with a super computer in their hands that we can put in our pockets. It amazes me the things we end up taking for granted. And many people does not care how it works only that it does and a lot of them have no appreciation for the engineering, time, and hard work that many had invested over the years to build such things.