Hand-made Web Server, Built From 200 TTL Chips
ps writes "Bill Buzbee has constructed a hand-made CPU, complete with
hardware address translation, memory mapped I/O, and DMA, out of 200
74-series TTL chips wired together with thousands of individually wrapped
wires. By using a port of Adam Dunkels' uIP TCP/IP stack to the Magic-1, it
currently serves up live web pages
at an amazing speed of 3 MHz. See the website for photos and
schematics."
Mirrordot cache
Welcome
These web pages are served by Bill Buzbee's Magic-1 Homebrew Minicomputer using Adam Dunkel's uIP TCP/IP stack.
The uIP code was compiled using a Magic-1 retargeting of the LCC portable C compiler, and assembled with a custom assembler. The physical connection to the internet is done though Magic-1's auxiliary serial port via SLIP to a PC running SuSE 9.2 Linux, and finally on to my home DSL line. Click on the links above to see some status information about the web server, the TCP/IP stack and Magic-1.
--- end site text
I have the site mirror'd via wget, but have no place I can put it that wouldn't slashdot just as fast. If anyone has an idea where I can post it, let me know. email me at puevfs@zubayvar.arg (ROT-13 encrypted -- you'll need to brute force it for the key)
Do you Gentoo!?
It has 45k page hits as of 7.18AM, PST. Let's see how it goes!
As I write this, the vast majority of the 38 comments are about /.'ing the machine, blah blah blah.
I, for one, think it's a neat project, and bow to Buzbee's superior geekdom.
ps writes "Bill Buzbee has constructed a hand-made CPU, complete with hardware address translation, memory mapped I/O, and DMA, out of 200 74-series TTL chips wired together with thousands of individually wrapped wires. By using a port of Adam Dunkels' uIP TCP/IP stack to the Magic-1, it currently serves up live web pages at an amazing speed of 3 MHz. See the website for photos and schematics."
Dennis Kuschel from Germany already did a similar project years ago. check his german page http://mycpu.dr.ag/ or his english page http://mycpu-en.dr.ag/ Dennis also wrote a custom OS with network stack and a c64-compatible basic interpreter for his homebrew-computer.
ECL is the non-saturated logic family.
Mea navis aericumbens anguillis abundat
Actually, that was the first demo of uIP. Oh, and he was running dynamic pages, TWO VNC servers, and a RealAudio(!) server (from the cassette).
/.ing.
And it took the
Shouldn't be a problem. Back in the 80's I remember wirewrapping Ciarcia's projects up to 10MHz. Judicious use of decoupling caps (.1uf) and standard digital design techniques were necessary but TTL and CMOS was pretty idiot proof at those frequencies.
3MHz should be plenty fine. It really depends on what the layout is of the chips and other circuits, how long the wires are, where/how they are spread out on the board, and how his power and ground is done. Power and Ground will be the biggie. If they are in actual planes on the board and he has plenty of decoupling capacitors, then he should easily be able to get over 10 MHz. We used to be able to get 16MHz 68000's running like this ages ago.
Here is the slashdot page: http://slashdot.org/article.pl?sid=02/04/15/043205
Although I'm a software guy, I did get some great advice from folks who actually knew what they were doing. Power/ground & decoupling were given lots of attention, and I was also helped by finding some nice wire-wrap prototype boards that had good power and ground planes. What's keeping Magic-1 from going faster than 3Mhz is my memory access mechanism. I don't support wait states, and rather a lot happens during each clock cycle. In any event, except when being Slashdotted, 3Mhz is plenty fast enough for a homebrew project.