Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Hardware Hacking

Hand-made Web Server, Built From 200 TTL Chips 343

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."
This discussion has been archived. No new comments can be posted.

Hand-made Web Server, Built From 200 TTL Chips

Comments Filter:
  • Re:3 MHz? (Score:1, Interesting)

    by Anonymous Coward on Monday June 06, 2005 @10:21AM (#12735749)
    There was a server running on a Commodore 64 some time ago, running at 1MHz, it handled the slashdotting nicely! CPU power isn't a huge factor with static pages, it's bandwidth that counts.
  • Article text (Score:5, Interesting)

    by milgr ( 726027 ) on Monday June 06, 2005 @10:36AM (#12735919)
    New: Magic-1 is now serving web pages using Adam Dunkel's uIP - click here

    Magic-1 is a homebuilt minicomputer. It doesn't use an off-the-shelf microprocessor, but rather has a custom CPU made out of 74 Series TTL chips. Altogether there are more than 200 chips in Magic-1 connected together with thousands of individually wrapped wires. And, it works. Not only the hardware, but there's also a full ANSI C compiler for Magic-1 (retargeted LCC), and a rudimentary homebrew operating system. You can even telnet into Magic-1 and play Original Adventure.

    This web site has served as the development repository for the project, and contains lots of pictures documenting the construction, as well as full documentation and diaries stretching back to the project's beginning in 2001. You can also find a few videos of Magic-1 running, including the first time it worked.

    Start here, and then check out the Overview and Photo Gallery. To dig deeper, browse through Technical Info, Construction - and if you're really interested, you can even download Magic-1's full schematics.

    Magic

    In the summer of 1980 I celebrated my freshly minted B.S. in Journalism by blowing most of the cash I collected in graduation gifts on a TRS-80 Model 1 computer. Sitting on the floor of my apartment I fired it up, typed in the sample BASIC program and then "RUN".

    WHAT IS YOUR NAME?

    "BILL", I responded.

    HI BILL

    Wow! I was blown away. This was just a machine, but I could interact with it using language that we both understood. As a Liberal Arts graduate with next to no technical background, I found this completely astonishing. Over the next year, I continued to play with my TRS-80 Model 1 while working as a journalist on a small-town Kansas newspaper. I decided that I really wanted to learn more about how computers worked, so I went back to college and picked up a M.S. in Computer Science.

    Now, more than 20 years later, I find myself with an urge to touch that magic again by building my own computer from scratch. By "scratch", I mean designing my own instruction set, wire-wrapping a CPU out of a pile of 74 series TTL devices and writing (or porting) my own assembler, compiler, linker, text editor and operating system.

    I'm calling this computer the "Magic-1", or M-1 for short. It's a one-address, microprogrammed machine with one-byte opcodes. It features 8/16-bit data operations, functioning on an 8-bit wide data bus with 16-bit addresses (mapped via 2K-byte pages into a 22-bit physical address space). Code and data address spaces can be shared or disjoint, giving each process up to 128K bytes of addressing. User and supervisor modes exist, along with hardware address translation, memory-mapped IO, and support for DMA and externally-generated interrupts. As far as components go, it is built entirely out of 74LS and 74F-series TTL devices plus modern SRAM and old bi-polar PROMs for the microcode store. I designed it to run at 4 Mhz, but missed a couple of critical paths - so ended up at 3 Mhz. Goals

    OK, so I understand wanting to do your own CPU, buy why on earth are you doing it this way? I mean, why TTL - why not FPGA? And really, 16-bit virtual addresses in a 22-bit physical address space! What's the deal with that?

    I guess any project should start off with some notion what of what you're trying to achieve. My high-level project goals are: bullet

    Touch the magic. By this I mean to gain a deeper understanding of how computers work, and specifically computers similar to those of the late 70's and early 80's that first fired my interest. For this reason, the Z80 loomed large in my mind throughout the design process, and running with an 8-bit data bus and 16-bit addresses just seemed right. Although I'm largely trying to use parts that would have been current in that time, I'm not shooting for historical accuracy. My choice of

  • by Thud457 ( 234763 ) on Monday June 06, 2005 @11:22AM (#12736396) Homepage Journal
    I'm not calling a hoax yet, but 3MHz seems awfully fast for wire-wrap. Do any of the old salts out there know what the limiting frequency would be for a wire-wrapped board?
  • Homebrew CPUs (Score:3, Interesting)

    by LesPaul75 ( 571752 ) on Monday June 06, 2005 @11:35AM (#12736546) Journal
    So, if a guy wanted to build a more "modern" homebrew CPU, what options are there? Are there any decent CAD tools that don't cost a thousand million dollars? And once a layout is done, is there anywhere you can get just one single chip made for a reasonable price?
  • by kae_verens ( 523642 ) on Monday June 06, 2005 @11:43AM (#12736609) Homepage
    brute force not necessary... the most common three TLDs are .com, .net, and .org your email obviously does not end in .org. .com cand be ruled out almost as easily by adding 2 to the .arg ext. that leaves .net. A quick count shows the key is ...13... I've just wasted my time, haven't I...
  • Maybe but would fark ever even post this?
  • by Linker3000 ( 626634 ) on Monday June 06, 2005 @12:00PM (#12736813) Journal
    You should have been in our place - we were struggling to get parallel processing running on 286 processors (hmm, yes..) and we were very much an 'Intel Shop' (many of us wondered who from Intel was 'sleeping with the MD'!). At one very key developers meeting involving Senior Management, one brave engineer was heard to remark "Everything we're trying to do could be achieved almost instantly if we went to Motorola Processors" - you could have heard a pin drop. Management totally blanked the comment and on we went stabbing away at the design until we had a 4-CPU card working - just in time for the 386 launch...and off we went back to square one...
  • Re:Homebrew CPUs (Score:5, Interesting)

    by crgrace ( 220738 ) on Monday June 06, 2005 @12:11PM (#12736920)
    So, if a guy wanted to build a more "modern" homebrew CPU, what options are there? Are there any decent CAD tools that don't cost a thousand million dollars? And once a layout is done, is there anywhere you can get just one single chip made for a reasonable price?

    LesPaul,

    I built a CPU using freeware tools as part of my PhD project. The paper is "A 12-bit 80MS/s Pipelined ADC with Bootstrapped Digital Calibration" published in the IEEE Journal of Solid-State Circuits, May 2005. You can google the title if you want to see the paper. Anyway, I designed a 24-bit microprogramed CPU in 0.25um CMOS to act as the calibration controller of the Analog-to-Digital Converter (ADC). The project was great because I got to design the architecutre of the CPU, the microcode/instruction set, I wrote a custom assembler, etc. I designed the circuits using viewdraw (public domain UNIX schematic capture tool). I designed the logic and tested the circuits using a public domain VHDL simulator (can't remember which one.. alliance maybe?). I laid out the circuit using Magic, a public domain layout editor running on Unix or Linux. The only thing that cost money was fabricating the chip. There is a service called MOSIS (www.mosis.org) that will do multi-project runs to lower the cost for you. I think the cheapest you will get is a couple of thousand bucks for 40 parts or so. Mine was something like $40k but I had high performance analog circuits in a fancy process. Email me if you need more info at carl.grace@yahoo.com

    Cheers,
    Carl
  • Re:Blinky Lights (Score:2, Interesting)

    by homebrewcpu ( 763860 ) on Monday June 06, 2005 @02:16PM (#12738306) Homepage
    Ah, I see you've been deceived by the "little-endian" heresy. As all right-thinking people know, both bits and bytes are numbered from the "big end" first. [In truth, I got used to big-endian numbering when doing lots of work on HP's PA-RISC architecture, which used big-endian bit numbering. So, when doing my own CPU I decided to make it big-endian as well.] As far as the blue wire, I started out trying to use different colors, but found that only a few kinds of wire would work reasonably well in my cut-strip-wrap gun. And, it only came in blue. I did make an exception for clocked signals where I could and used red wire (but I only had a limited amount of it).
  • by John Jorsett ( 171560 ) on Monday June 06, 2005 @03:10PM (#12739008)
    Seriously, that's pretty much what they were, just piles of TTL logic chips and strung-on-wire graphite beads for memory, all on pizza-box-size boards that slipped into a big chassis. You needed at least three boards, one for the CPU, one for memory, and one for I/O. The first minicomputer I worked with was a Data General Nova 1200. 1200 as in 1200 nanoseconds PER INSTRUCTION. That's a whopping 833 KHz. And a stunning 8 kilobytes of memory. It was amazing what we got that thing to do, though.

    You can tell you're getting old when people start reproducing the obsolete crap you're happy as hell to have left behind.

I have hardly ever known a mathematician who was capable of reasoning. -- Plato

Working...