If somebody in 1972 were able to watch this video, I speculate the most shocking thing would be the 3D-printed case you mentioned as if it was nothing. 🤣
The second most shocking thing would be when you explain that not only do people have personal replicator machines that fit on their desk, but most of the things they produce with them are tiny model boats and flexi-dinosaurs.
@@smbakerytmy single most replicated part are storage bin organizers for my electronics storage bins. If I would go back and tell my 12 year old self in 1982 that’s what I’d be making I’d question my sanity.
@@c1ph3rpunk I confess I had to make a lot of dividers for my Stack-On parts storage bins. For whatever reason the manufacturer decided to sell them all 5 dividers short of a full set.
This HAS to go in a Cray-1 style case. Spent 15 years, in a previous life, in HPC, this absolutely counts as a “super” computer. You’ve used almost exactly the way the “big guns” do it.
JLCPCB or others could fab a flex PCB for the semi-circular backplane on that Cray style setup. Easy peasy. DO IT!!! This project is diabolical genius!
So you worked in HPC but you never thought that "supercomputer" was a word that had to be used in context, which represented a moving target? Huh; weird.
Fantastic. Nothing earth-shattering but interesting to see how even ‘simple’ technologies can be expanded. The comparison was a fine demonstration of the overhead of multiprocessing. Getting even 80% of each processor is pretty remarkable. Good show. Thanks for sharing.
in theory it should be possible to get old chips acting like a 64bit system. maybe keep going 128-256-1024 not sure why we are stuck with emulated 64bit systems?
That looks fun. I built a "parallel processor" using 7 Arduinos last year to control linear stepper actuators. One master Arduino controlled the frame rate, timing, and speed, and had special modes for testing individual actuators. Each actuator control Arduino had to respond to rate and timing control pots and various discretes and control signals from the master Arduino. The physical device itself was way more complicated than the processor setup though. Took about 6 months to build the hardware.
Amazing work! The multiprocessing approach reminds me a bit of Parallax Propeller. I wonder if the "Blasters" had some minimal "brains", such as ROM with hard-coded routines to pull new code to execute from the "Master" (perhaps in their interrupt routine), then maybe the logic (both on the boards and programming) could be simplified.
That's funny -- I thought the same when I got started. I was considering trying to implement the propeller's "hub" as a mechanism for shared memory access.
Your project is incredible. I had been researching processor parallelism for some time. I was trying to do something similar to your project, but using the Z80.
For parallel processing - the old Transputers were an excellent choice. There was even a demo version of "Life" included with the development system. The more transputers in the array, the faster the demo ran. Or you could divide up the transputers and have multiple games running simultaneously with multiple outputs. All were interconnected using high speed serial 'links' and the links could be dynamically allocated. For these - each transputer can be booted using the links and then perform all control/status via the links. No reason to halt the transputers during data transfers - the on-chip DMA will run in parallel with the processor's software. They were a joy to work with ... until ST Micro killed it off while trying to create the long anticipated T9000 series.
@@smbakeryt We used to make custom boards using transputers to calibrate satellite imagery. Worked extremely well way back then. They easily outran 80286 computers which were newly introduced. By today's standards -- may as well use an 8008. Nice thing about Transputers is they require very little support hardware. If the program is small enough, they can use internal memory. Else it had built in SRAM and DRAM interfaces. Two wire 'links' were quite quick at the time. And writing code in OCCAM was... different. Also - recently sold my Intel 4004 based computer. Was built into a suit case type box and still worked (after a power supply rebuild). Now sitting in a computer museum somewhere in Germany.
I am not sure what you mean when you say the links were dynamically allocated because they occupied a set of pins on the chip which at design time were connected to other ports on other transputers. The connection topology was static. Passing messages from one transputer to another which wasn't directly electrically connected was problematic and required software to be written to implement the messaging system. I believe in later versions of the transputer, and IIRC the T9000, they implemented message handling in hardware in the chip to reduce the burden on the software.
@@deang5622 They are static if you did direct connects. You can change who they connect to through the link switch -- IMSC004. We had one link switch on every board and did this all the time.
I honestly never thought I'd see "8008" and "supercomputer" in the same sentence. ;) :) I'll have to watch this one again when I get home tonight... it looks superb.
That's a great idea. I was thinking of using a lens or a funhouse mirror to compress one of the directions, but you're right playing with the camera might work too!
This sounds very similar to a system I used to work on back at Intel around 1983. The system was a parallel EPROM programmer / tester. There was a master cpu card and 15 cards. Each of the 15 cards was connected to a socket where the technician inserted the EPROM to be tested. There was a button on the front panel of the system that went to the main cpu card. When pressed, it would cause the main cpu to download software to each of the 15 cards. The cards would run in parallel programming and testing the EPROM. When the programming/testing was complete, about 4-5 minutes elapsed, the main cpu would indicate that all tests were done and the technician could remove the EPROMS and put in a new set. All the cards plugged into a back plane and used a similar method as what you described to communicate from the main cpu to the 15 cards. My job back then was to write the code that tested the EPROMs. The main cpu and the 15 test cards were all 8085. The test cards each had multiple programmable power supplies which could be set to specific voltages. The current draw of each power supply could be measured. It was a challenge to write 8085 assembly language and the only way to verify and debug my code was with an oscilloscope. The EPROMs that I was writing code to program/test were 27128. It was the highest density EPROM at that time.
I just want to let you know that now, 41 years later, we still use tools that look a lot like that. The processors inside have undoubtedly changed, but the card form factor is alive and well on lab benches.
Really cool project! I've been kicking around the idea of a dual-MC6809E (now I'd use HD63C09E) computer since I was 15 years old and read about it in my Heathkit EE-3404 (6809 Microprocessors) course for the ET-3400(A). At that time, I also had a couple of Motorola application notes describing how to do it sharing a common bus and global memory by setting the clock signals 180 degrees apart.
I have vague recollections of Steve Ciarcia doing a Mandelbrot parallel processor engine using MCS-51 micro controllers back in the 80's. He reckoned it was faster than any 386 Pc at the time. I don't think the cards required any support chips, so they were just STD-Bus style cards covered with 40 pin Dip's
I always wanted to see what 8008 performance was like compared to newer cpu's, conways game of life is on zx spectrum and seems closer to the parallel 8008's, I wonder what the performance would be like if a home computer was made from the 8008.
Impressive. I may be showing my ignorance, but I wonder if this architecture is similar to what Heathkit did with their H2K Robot that had 8 processors. Thanks for sharing the videos. Very informative and keeping the tradition of homebrew and kit building alive.
Where the heck does one gets eight 8008's? They are somewhere between hardobtanium and unomtanium ;) I consider myself lucky to have one in a box of retro-stuff to build something one day. I hope it works - at least it's not bought from Aliexpress...
I bought them all on eBay, about $40 each (yeah, that's $320 worth of CPUs!), over the period of a few months. You do have to be a little bit careful of which eBay seller you choose -- I usually send a few emails to make sure the seller seems legit, and I stick with sellers that are in the USA or Europe.
$320 is not too bad at all - about the same as the gamers today spend on a graphics card. But I guess only old farts like us would choose the 8008's ;-) Was all of the ones you bough ok? And all was the "real" Intel ones and not some second source?
@@MatsEngstrom The ones I bought from US eBay sellers were fine and they did look to have authentic branding on them. I bought some D8008-1 (800 KHz instead of 500 KHz!) from China for $26 each a few months back and those turned out to be either defective or counterfeit. I've read about a scam where counterfeiters have taken 8284 clock generators and reprinted them to read 8008 or 8008-1. So you do have to watch out.
This is an amazing coincidence - I just won 10 pcs of NOS 8008-1 at a local Swedish auction site. The guy had listed the lot for $1 and it ended up at $230 so I'm fairly happy. Now I just have to figure out something to build with them. (The wife is not super-thrilled though ^__^ )@@smbakeryt
1980ths super computers actually only had a few CPU cores. The Cray had 2x100Mhz up to 8x200Mhz or something like that. Remember, we are talking about a time when a 68000@8Mhz was insane. The Cray CPU was actually a TTL-Thingy-Kindof, but massively selected for Clock speed.
I have a board from a Cray 1 and it contains ECL chips made by Fujitsu. So I don't think it was TTL logic but higher speed and higher power consumption ECL.
@@deang5622that was the term I was looking for. The chips on the Cray boards are actually very simple stuff, not really CPUs in a modern sense but less complex chips combined. Some had less than 100 transistors. Overall my IT professor said it was "some kind of drastically overclocked TTL-stuff where the cooling was more complex than the hardware itself".
@@CrassSpektakel They are _very_ simple chips, containing only a few NAND dates. Discrete logic which is like the TTL 74xx series chips. You can make anything out of NAND gates, including OR, NOR, XOR, NOT functions and flipflops.
This is amazing. I don't know nearly enough to start the project(yet) but I've considered doing something like this with the RC2014. Not sure if I'd need custom boards or if there's a way to make multiple standard CPU boards work with some assembly magic. Custom CPU boards would almost certainly be a better option, though.
Scelbi basic for the 8008 includes floating point support, but it is a very slow basic interpreter. So I think floating point performance would be not that great, plus it's a lot of code. I do think that adding numeric coprocessors would make the project interesting though.
Suprisingly it's not that bad. Running the "ID" program, which leaves all 8008s halted, about 15 watts. Running the "Freerun" program which has them all running and incrementing the LEDs, about 17.25 watts.
Very intriguing. I assume some of those blaster cores runs faster than some other, maybe just because of the conway grid they have to compute and because of your serial output you atleast have to wait until the 0'th grid is complited but maybe you wait for all of them to compute and not wait for #0 then #1 etc. and print out the result as they come.
I wait for #0 and then I start my readout, under the assumption that all of them finish at the same time. This is actually an artifact of how I built the thing -- first starting with just one board and then never getting around to waiting for them all. It's actually no more work to wait for all of them than just one of them as a single port read returns the status of all blasters simultaneously. I suppose I'm lucky that they all finish at close enough to the same time.
Pretty fun. I think if you want to scale system, it might be better to use something that is easier to assemble and require less external components, smaller boards, etc. 8008 is probably not the best for this. I would not shy from SMD either, if you first develop a prototype, then make it assembled for you. 64 is definitively doable. 256 would be cool, but maybe another day. Even for 64, 16-bit address space might be quite a limitation. As of supercomputery. Yes, kind of. To make it more performant and more similar to real supercomputers, some kind of specialized interconnect, for example ring bus, so each blaster can communicate with its neighbours without going via master or main bus, that would totally classify as a supercomputer. Probably worth exploring more parallel programs first on this 7 board one. My suggestions: parallel sorting, chess game AI, ray tracing (can probably do some simple things without need of fpu, with a bit of library code), N-body simulation. There are many more, but are either too trivial, and not flashy (like matrix multiplication or fft), or too complex, or results are a bit too abstract, and with so little memory, even trivial code on single process will finish fast. Another interesting one (but could be tricky without compiler and fpu), could be some optimization, i.e. genetic algorithms based, which has some potential for parallelism.
10 місяців тому
The Intel 8008 ("eight-thousand-eight" or "eighty-oh-eight") is an early 8-bit microprocessor capable of addressing 16 KB of memory, introduced in April 1972.
That would be a viable alternative. I have had some trouble with clocks getting noisy across large backplanes, but I think at this speed it would not have been an issue. One of the things that came to mind as I was building them out. An additional advantage would be that they would also be in sync with one another without any drift (if that mattered to an application).
I assume that all the busses are async given the vintage. Did you have any concerns with metastability? E.g. one of the async control signals (run/halt, irq and maybe req if you implement it) which are travelling between two sync clock domains (both 1MHz but not the same 1MHz)?
I did that in 1976. The company I worked for "didn't believe" in microprocessors - so I built an 8080 in 7400 DIL original series chips and located it on the left hand side of a pcb and then added an 1k * 8 RAM and the peripheral chips I wanted to use. The BIOS was 256 BYTES EPROM and the program 512 BYTES, I wrote everything in machine code ON PAPER counting my jumps by hand etc. That was fine apparently, but cost at least twice as much as using a real 8080 ! My home computer was an S100 Bus machine (Altair clone) booted from switches and using paper tape for program storage.
If it is just a "supercomputer" project you could go also with for example an at tiny set. You can for example use some hundreds of them to have something good for today....
This is cool, I am currently doing something like this for a project. some some info for you that may or may not help. I am using a serial ring that I used years ago on a mutli controller project. bottom line, I send a 'token' down line, then next ucontroller gets it and now has the token, if it didnt need it, it passes it back down the line - idea came from old token ring network. I have a few resources on the board, such as the spi bus, ram bus, etc... what i do is assign a resource number to each, example: SPI = 1 RAM=2 Then I send out the token *1; or *2; this tells the next uC in the line what resource it now has. In each uC I have a req flag, req[1] = true. then when a token comes in, if its not true, then I just pass it right back out to the next uC I dont know if it helps or not, its just the design I went with. but using it you could have each cpu access the ram and potentially running its own program aka, thread
Back when I was tossing around ideas to use a Z180 for a cluster computer, I was thinking about a similar token-passing scheme. Build a ring and pass the token around it so any CPU could talk to any other CPU. I still might revisit that idea. I had plans to make it true peer-to-peer where any node could assert itself (or be elected) to be the controller. Even had plans for making it hot pluggable where you could pull a node and the token could still go around the ring.
@@smbakeryt I am daisy chaining via a uart. but your idea of allow each to assert itself, I wonder if you could do some sort of can style, where a line is pulled high by a resistor and an output line pulls low, for a 1, then release for a 0, if it didnt release than somone else has it. short summary here, but I know you know the can id system. anyways, here I am throwing a mokey and your wrench lol
So I was wondering what kind of games you can play with it. Will it run Doom 2016, and how long would it take to load. Seriously, what's the point? Could it be considered the equivalent of a six-core processor from 1960?
Master/blaster terminology doesn't work for me i e. free speech is a thing. Also an 8008 is an unfortunate choice because there are floating point libraries available for the 8080. It would have been more interesting to compare specs.
in h8/h8-8008/asm/life.inc line 331 you do coldec twice to skip over the center. Why not just follow the circle round? In fact if you start with the cell right above, you get even less instructions. Nice project, very impressed.
If somebody in 1972 were able to watch this video, I speculate the most shocking thing would be the 3D-printed case you mentioned as if it was nothing. 🤣
The second most shocking thing would be when you explain that not only do people have personal replicator machines that fit on their desk, but most of the things they produce with them are tiny model boats and flexi-dinosaurs.
@@smbakerytmy single most replicated part are storage bin organizers for my electronics storage bins. If I would go back and tell my 12 year old self in 1982 that’s what I’d be making I’d question my sanity.
@@c1ph3rpunk I confess I had to make a lot of dividers for my Stack-On parts storage bins. For whatever reason the manufacturer decided to sell them all 5 dividers short of a full set.
This HAS to go in a Cray-1 style case. Spent 15 years, in a previous life, in HPC, this absolutely counts as a “super” computer. You’ve used almost exactly the way the “big guns” do it.
Thank you!!!
@@smbakeryt Tiny Connection Machine also fits. 🙂
JLCPCB or others could fab a flex PCB for the semi-circular backplane on that Cray style setup. Easy peasy. DO IT!!!
This project is diabolical genius!
I mean this is more or less how multi-core CPUs do it even now... and I agree that this counts as a super computer.
So you worked in HPC but you never thought that "supercomputer" was a word that had to be used in context, which represented a moving target? Huh; weird.
Hats off to you good sir. the fact that you can design, build and code all this is truly amazing
Fantastic. Nothing earth-shattering but interesting to see how even ‘simple’ technologies can be expanded.
The comparison was a fine demonstration of the overhead of multiprocessing. Getting even 80% of each processor is pretty remarkable. Good show. Thanks for sharing.
in theory it should be possible to get old chips acting like a 64bit system.
maybe keep going 128-256-1024
not sure why we are stuck with emulated 64bit systems?
That looks fun. I built a "parallel processor" using 7 Arduinos last year to control linear stepper actuators. One master Arduino controlled the frame rate, timing, and speed, and had special modes for testing individual actuators. Each actuator control Arduino had to respond to rate and timing control pots and various discretes and control signals from the master Arduino. The physical device itself was way more complicated than the processor setup though. Took about 6 months to build the hardware.
That isn't parallel processing, it's a distributed processing system.
Amazing work! The multiprocessing approach reminds me a bit of Parallax Propeller. I wonder if the "Blasters" had some minimal "brains", such as ROM with hard-coded routines to pull new code to execute from the "Master" (perhaps in their interrupt routine), then maybe the logic (both on the boards and programming) could be simplified.
That's funny -- I thought the same when I got started. I was considering trying to implement the propeller's "hub" as a mechanism for shared memory access.
Your project is incredible. I had been researching processor parallelism for some time. I was trying to do something similar to your project, but using the Z80.
Z180 would also be a good choice. Software compatibility with the Z80 and you gain some useful built-in peripherals.
there a more modern eZ80 with 24 bit address space, running at higher frequency, and a pipelined architecture.
At school in the early 90s, they had a "supercomputer" with 6 or 8 fully interconnected 386s. I never took a class that used it, unfortunately.
For parallel processing - the old Transputers were an excellent choice. There was even a demo version of "Life" included with the development system. The more transputers in the array, the faster the demo ran. Or you could divide up the transputers and have multiple games running simultaneously with multiple outputs. All were interconnected using high speed serial 'links' and the links could be dynamically allocated. For these - each transputer can be booted using the links and then perform all control/status via the links. No reason to halt the transputers during data transfers - the on-chip DMA will run in parallel with the processor's software. They were a joy to work with ... until ST Micro killed it off while trying to create the long anticipated T9000 series.
I've seen transputer boards occasionally come up on eBay, and I've been tempted, but they're also something I know nothing about!
@@smbakeryt We used to make custom boards using transputers to calibrate satellite imagery. Worked extremely well way back then. They easily outran 80286 computers which were newly introduced. By today's standards -- may as well use an 8008.
Nice thing about Transputers is they require very little support hardware. If the program is small enough, they can use internal memory. Else it had built in SRAM and DRAM interfaces. Two wire 'links' were quite quick at the time. And writing code in OCCAM was... different.
Also - recently sold my Intel 4004 based computer. Was built into a suit case type box and still worked (after a power supply rebuild). Now sitting in a computer museum somewhere in Germany.
I am not sure what you mean when you say the links were dynamically allocated because they occupied a set of pins on the chip which at design time were connected to other ports on other transputers. The connection topology was static.
Passing messages from one transputer to another which wasn't directly electrically connected was problematic and required software to be written to implement the messaging system.
I believe in later versions of the transputer, and IIRC the T9000, they implemented message handling in hardware in the chip to reduce the burden on the software.
@@deang5622 They are static if you did direct connects. You can change who they connect to through the link switch -- IMSC004. We had one link switch on every board and did this all the time.
I honestly never thought I'd see "8008" and "supercomputer" in the same sentence. ;) :) I'll have to watch this one again when I get home tonight... it looks superb.
One way to possibly make your banner demo work...
Change the camera angle about 45 degrees to the right.
Just a thought...
That's a great idea. I was thinking of using a lens or a funhouse mirror to compress one of the directions, but you're right playing with the camera might work too!
This is not a supercomputer. This is a super duper computer.
This sounds very similar to a system I used to work on back at Intel around 1983. The system was a parallel EPROM programmer / tester. There was a master cpu card and 15 cards. Each of the 15 cards was connected to a socket where the technician inserted the EPROM to be tested. There was a button on the front panel of the system that went to the main cpu card. When pressed, it would cause the main cpu to download software to each of the 15 cards. The cards would run in parallel programming and testing the EPROM. When the programming/testing was complete, about 4-5 minutes elapsed, the main cpu would indicate that all tests were done and the technician could remove the EPROMS and put in a new set. All the cards plugged into a back plane and used a similar method as what you described to communicate from the main cpu to the 15 cards. My job back then was to write the code that tested the EPROMs. The main cpu and the 15 test cards were all 8085. The test cards each had multiple programmable power supplies which could be set to specific voltages. The current draw of each power supply could be measured.
It was a challenge to write 8085 assembly language and the only way to verify and debug my code was with an oscilloscope.
The EPROMs that I was writing code to program/test were 27128. It was the highest density EPROM at that time.
I just want to let you know that now, 41 years later, we still use tools that look a lot like that. The processors inside have undoubtedly changed, but the card form factor is alive and well on lab benches.
Really cool project! I've been kicking around the idea of a dual-MC6809E (now I'd use HD63C09E) computer since I was 15 years old and read about it in my Heathkit EE-3404 (6809 Microprocessors) course for the ET-3400(A). At that time, I also had a couple of Motorola application notes describing how to do it sharing a common bus and global memory by setting the clock signals 180 degrees apart.
RIP Heathkit
I have vague recollections of Steve Ciarcia doing a Mandelbrot parallel processor engine using MCS-51 micro controllers back in the 80's. He reckoned it was faster than any 386 Pc at the time.
I don't think the cards required any support chips, so they were just STD-Bus style cards covered with 40 pin Dip's
I'm going to have to look for that article. Using a microcontroller would be a good way to incorporate a decent quantity of CPUs.
Found it! Looks like the series starts in the October 1988 issue of BYTE.
@@smbakeryt Byte, October-December 1988
This video also reminded me of that series of articles. Certainly worth a read.
BYTE, one of the best computing magazines ever published.
Impressive and looks like fun.
Haven't touched assembly since the mid 90's but it does bring back memories.
thank you for the visual benchmarking conway 🥰🙂
This is so unbelievably foreign to me. Sir, you are an absolute genius.
For the banner to work, look at the blasters from the side at a shallow angle and you can see the text clearly.
I want to do this with the W65C816 in the worst way.
Wow, this video is super interesting! thanks!
Your lab bench looks like mine. Nice iron.
I've been tempted to do a video n the Pace. Love that thing.
Perfect and very much on point max max reference.
Fantastic project. But where does one get a 8008, let alone 7 of them?
Probably old computers, or Ebay.
eBay, about $40 each. I do recommend people be careful, buy only from reputable sellers as I had a few issues sourcing mine.
I always wanted to see what 8008 performance was like compared to newer cpu's, conways game of life is on zx spectrum and seems closer to the parallel 8008's, I wonder what the performance would be like if a home computer was made from the 8008.
Impressive. I may be showing my ignorance, but I wonder if this architecture is similar to what Heathkit did with their H2K Robot that had 8 processors. Thanks for sharing the videos. Very informative and keeping the tradition of homebrew and kit building alive.
This is really cool! I was wanting to do something similar with a bunch of Z80 CPUs.
Octoblaster (sadly the name is already coined). Subscribed to see the continuation of this super 8bit computer.
I'll just have to call it "Octoblaster Prime" instead :)
Magical. Gene Amdahl is smiling down on you.
Where the heck does one gets eight 8008's? They are somewhere between hardobtanium and unomtanium ;) I consider myself lucky to have one in a box of retro-stuff to build something one day. I hope it works - at least it's not bought from Aliexpress...
I bought them all on eBay, about $40 each (yeah, that's $320 worth of CPUs!), over the period of a few months. You do have to be a little bit careful of which eBay seller you choose -- I usually send a few emails to make sure the seller seems legit, and I stick with sellers that are in the USA or Europe.
$320 is not too bad at all - about the same as the gamers today spend on a graphics card. But I guess only old farts like us would choose the 8008's ;-)
Was all of the ones you bough ok? And all was the "real" Intel ones and not some second source?
@@MatsEngstrom The ones I bought from US eBay sellers were fine and they did look to have authentic branding on them. I bought some D8008-1 (800 KHz instead of 500 KHz!) from China for $26 each a few months back and those turned out to be either defective or counterfeit. I've read about a scam where counterfeiters have taken 8284 clock generators and reprinted them to read 8008 or 8008-1. So you do have to watch out.
@@MatsEngstrom there are some young folk doing it, thanks to guys like Ben eater, and James Sharman.
i am one of them, quite a fun hobby.
This is an amazing coincidence - I just won 10 pcs of NOS 8008-1 at a local Swedish auction site. The guy had listed the lot for $1 and it ended up at $230 so I'm fairly happy. Now I just have to figure out something to build with them. (The wife is not super-thrilled though ^__^ )@@smbakeryt
Quite a project...my hat off to you! 👍
1980ths super computers actually only had a few CPU cores. The Cray had 2x100Mhz up to 8x200Mhz or something like that. Remember, we are talking about a time when a 68000@8Mhz was insane. The Cray CPU was actually a TTL-Thingy-Kindof, but massively selected for Clock speed.
I have a board from a Cray 1 and it contains ECL chips made by Fujitsu.
So I don't think it was TTL logic but higher speed and higher power consumption ECL.
@@deang5622that was the term I was looking for. The chips on the Cray boards are actually very simple stuff, not really CPUs in a modern sense but less complex chips combined. Some had less than 100 transistors. Overall my IT professor said it was "some kind of drastically overclocked TTL-stuff where the cooling was more complex than the hardware itself".
@@CrassSpektakel They are _very_ simple chips, containing only a few NAND dates. Discrete logic which is like the TTL 74xx series chips.
You can make anything out of NAND gates, including OR, NOR, XOR, NOT functions and flipflops.
@@deang5622reminds me I still want to build a Gigatron TTL computer some day...
This is amazing.
I don't know nearly enough to start the project(yet) but I've considered doing something like this with the RC2014. Not sure if I'd need custom boards or if there's a way to make multiple standard CPU boards work with some assembly magic. Custom CPU boards would almost certainly be a better option, though.
I pondered doing something similar many years ago but with 6502s
Severely fun! Surprisingly slow for such a simple task. It's not much different than doing same on a 6809 using BASIC interpreter.
I would like to see something like this but with an NS32K or z280
Love it!
What about using a 8086 to control the 8008 slave boards.
The poor thing will be bored to death
I’d be very curious to see what the floating point capabilities are
Scelbi basic for the 8008 includes floating point support, but it is a very slow basic interpreter. So I think floating point performance would be not that great, plus it's a lot of code. I do think that adding numeric coprocessors would make the project interesting though.
Can you still not see the printout when you hold the boards at an angle to the camera?
Will FUZIX work on this? Would be interesting to have modern UNIX-experience on something so oddball!
Good boy! We will put it on the fridge!
Wow, that's an impressive and fascinating machine! Maybe it wouldn't have been called a "super computer", but it's still pretty darned neat. 🙂
Out of curiosity, how much power does that take? I presume it's maybe 20 watts or so?
Suprisingly it's not that bad. Running the "ID" program, which leaves all 8008s halted, about 15 watts. Running the "Freerun" program which has them all running and incrementing the LEDs, about 17.25 watts.
Very fascinating
looks like 5 times faster to me, I was seeing iteration counts of 2:10, 3:15, 4:20, 5:25 etc up to 9:45 when I quit monitoring it. Nice project!
Very intriguing. I assume some of those blaster cores runs faster than some other, maybe just because of the conway grid they have to compute and because of your serial output you atleast have to wait until the 0'th grid is complited but maybe you wait for all of them to compute and not wait for #0 then #1 etc. and print out the result as they come.
I wait for #0 and then I start my readout, under the assumption that all of them finish at the same time. This is actually an artifact of how I built the thing -- first starting with just one board and then never getting around to waiting for them all. It's actually no more work to wait for all of them than just one of them as a single port read returns the status of all blasters simultaneously. I suppose I'm lucky that they all finish at close enough to the same time.
Pretty fun. I think if you want to scale system, it might be better to use something that is easier to assemble and require less external components, smaller boards, etc. 8008 is probably not the best for this. I would not shy from SMD either, if you first develop a prototype, then make it assembled for you. 64 is definitively doable. 256 would be cool, but maybe another day. Even for 64, 16-bit address space might be quite a limitation.
As of supercomputery. Yes, kind of. To make it more performant and more similar to real supercomputers, some kind of specialized interconnect, for example ring bus, so each blaster can communicate with its neighbours without going via master or main bus, that would totally classify as a supercomputer.
Probably worth exploring more parallel programs first on this 7 board one. My suggestions: parallel sorting, chess game AI, ray tracing (can probably do some simple things without need of fpu, with a bit of library code), N-body simulation. There are many more, but are either too trivial, and not flashy (like matrix multiplication or fft), or too complex, or results are a bit too abstract, and with so little memory, even trivial code on single process will finish fast. Another interesting one (but could be tricky without compiler and fpu), could be some optimization, i.e. genetic algorithms based, which has some potential for parallelism.
The Intel 8008 ("eight-thousand-eight" or "eighty-oh-eight") is an early 8-bit microprocessor capable of addressing 16 KB of memory, introduced in April 1972.
4 pairs of 8008s... nice.
Why do you need an extra clock for each Blaster, don't using the Master-Clock for all of them?
That would be a viable alternative. I have had some trouble with clocks getting noisy across large backplanes, but I think at this speed it would not have been an issue. One of the things that came to mind as I was building them out. An additional advantage would be that they would also be in sync with one another without any drift (if that mattered to an application).
I assume that all the busses are async given the vintage. Did you have any concerns with metastability? E.g. one of the async control signals (run/halt, irq and maybe req if you implement it) which are travelling between two sync clock domains (both 1MHz but not the same 1MHz)?
I wanna see the 8086, Cause maybe you can get enough to run something newish(?)
You made my dream come true, what would happened if the it industry stayed at 8 bit… 😊
Looks like this could be a great SIMD computer.
To up the stakes - try to build a computer based on 74 chips only, including the 74181.
I did that in 1976. The company I worked for "didn't believe" in microprocessors - so I built an 8080 in 7400 DIL original series chips and located it on the left hand side of a pcb and then added an 1k * 8 RAM and the peripheral chips I wanted to use. The BIOS was 256 BYTES EPROM and the program 512 BYTES, I wrote everything in machine code ON PAPER counting my jumps by hand etc. That was fine apparently, but cost at least twice as much as using a real 8080 !
My home computer was an S100 Bus machine (Altair clone) booted from switches and using paper tape for program storage.
If it is just a "supercomputer" project you could go also with for example an at tiny set. You can for example use some hundreds of them to have something good for today....
Absolutely great :)
You should have used the 4004 instead ..
But, then, it would be 4-bit, not 8-bit.
Sourcing 8008 was expensive enough. I'd not like to have to buy 8 4004s. :)
It won't be long now until you get some AM2901s and build up your own processor and computer.
The I/O to serial is rather slow, a good comparison could be the master running only I/O and one of the blasters doing the calculation.
This makes the NES seem like a super machine, oh well
This is cool, I am currently doing something like this for a project. some some info for you that may or may not help. I am using a serial ring that I used years ago on a mutli controller project. bottom line, I send a 'token' down line, then next ucontroller gets it and now has the token, if it didnt need it, it passes it back down the line - idea came from old token ring network.
I have a few resources on the board, such as the spi bus, ram bus, etc... what i do is assign a resource number to each, example:
SPI = 1
RAM=2
Then I send out the token *1; or *2; this tells the next uC in the line what resource it now has.
In each uC I have a req flag, req[1] = true. then when a token comes in, if its not true, then I just pass it right back out to the next uC
I dont know if it helps or not, its just the design I went with. but using it you could have each cpu access the ram and potentially running its own program aka, thread
SPI Token Ring! ;-)
Back when I was tossing around ideas to use a Z180 for a cluster computer, I was thinking about a similar token-passing scheme. Build a ring and pass the token around it so any CPU could talk to any other CPU. I still might revisit that idea. I had plans to make it true peer-to-peer where any node could assert itself (or be elected) to be the controller. Even had plans for making it hot pluggable where you could pull a node and the token could still go around the ring.
@@smbakeryt I am daisy chaining via a uart. but your idea of allow each to assert itself, I wonder if you could do some sort of can style, where a line is pulled high by a resistor and an output line pulls low, for a 1, then release for a 0, if it didnt release than somone else has it. short summary here, but I know you know the can id system. anyways, here I am throwing a mokey and your wrench lol
You could optimise the screenprint by skipping all whitespace runs bigger than some amount of chars
Can it run River Raid ?
Master blaster, pew pew!
64x motorola 68060's would be a fairly serious machine
So I was wondering what kind of games you can play with it. Will it run Doom 2016, and how long would it take to load. Seriously, what's the point? Could it be considered the equivalent of a six-core processor from 1960?
How on earth did you get or write the code for that, its a whole new OS. Way out of my depth here.
wow, how did you source that many 8008 without selling a kidney ??
If you had eight 8008 boards connected to one frame, you would have, at the time, a supercomputer for its time
Wait just a minute.... YOU JUST RECREATED THE CELL BROADBAND ENGINE But with the 8008 instead of Power PC and SPEs...
nice!
You need to find a way to add a 5 to the end of the 8008. I can't explain the scientific reason but it will make it better 🤪
cray cray
I see 7 boards.
7 blasters + 1 master (and one backplane). The master counts as one of the 8008.
Who cares if someone thinks this is pointless, it's not. It's a learning experience and probably really fun to work on.
Wait a minute you gave each CPU $7000 (2024: $51500) worth of RAM??? lol that is a a suuuuuuper computer lol.
Throw 8 8087 and see what happens...
Awesome! but... can it run DOOM? 😎
...😎 👏👍🖖
Do they have math co processors with them. 16 processors 🤣
Master/blaster terminology doesn't work for me i e. free speech is a thing. Also an 8008 is an unfortunate choice because there are floating point libraries available for the 8080. It would have been more interesting to compare specs.
You don’t )) This wasting of time and resources is called a bit differently
8 BOOB computer
zamzam water
in h8/h8-8008/asm/life.inc line 331 you do coldec twice to skip over the center. Why not just follow the circle round? In fact if you start with the cell right above, you get even less instructions. Nice project, very impressed.