Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Unix Hardware Linux

DIY CPU Demo'd Running Minix 313

DeviceGuru writes "Bill Buzbee offered the first public demonstration of the open-source Minix OS — a cousin of Linux — running on his homebrew minicomputer, the Magic-1, at the Vintage Computer Festival in Mountain View, Calif. The Magic-1 minicomputer is built with 74-series TTL ICs using wire-wrap construction, and implements a homebrew, 8086-like ISA. Rather than using a commercial microprocessor, Buzbee created his own microcoded CPU that runs at 4.09 MHz, and is in the same ballpark as an old 8086 in performance and capabilities. The CPU has a 22-bit physical address bus and an 8-bit data bus."
This discussion has been archived. No new comments can be posted.

DIY CPU Demo'd Running Minix

Comments Filter:
  • Pimp my Magic-1 (Score:4, Interesting)

    by ddrichardson ( 869910 ) on Sunday November 04, 2007 @03:41PM (#21234017)

    I'm quite impressed that he went to the trouble of the cutaway side panel and the illumination [linuxdevices.com]. With all those switches and lights on the front we truly are one step closer to Star Trek technology.

  • Altair-a-like (Score:4, Interesting)

    by lobiusmoop ( 305328 ) on Sunday November 04, 2007 @03:59PM (#21234207) Homepage
    I cant help but notice that the Magic-1 looks a lot like the original Altair 8800 [wikipedia.org], star of the Homebrew Computer Club in the 70's. At least this can have a console hooked up to it, from the look of it, the Altair originally had to have all the programming done via the switches on the front alone!
  • Doomsday paranoia (Score:5, Interesting)

    by Dan East ( 318230 ) on Sunday November 04, 2007 @04:12PM (#21234305) Journal
    I find projects like this very comforting. Maybe I'm mildly paranoid, but every now and then I wonder what life would be like if society collapses. Most of the technology we enjoy today can only be produced via huge infrastructures made possible by large, advanced, stable societies. This project shows that fundamental computing technology can be reproduced with relative ease on a very small scale with limited resources. That's a great thing. Time to make some hard copies of this computer design!

    Dan East
  • Re:Heh heh heh... (Score:2, Interesting)

    by phaunt ( 1079975 ) on Sunday November 04, 2007 @04:24PM (#21234423)
    That reminds me of the Commodore 64 web server [c64.org] that slashdot reported about [slashdot.org] 5 1/2 years ago. That site went down within no time too, but ink's [slashdot.org] mirror is still online [islug.org].
  • by Caltheos ( 573406 ) on Sunday November 04, 2007 @04:24PM (#21234425)
    At college, I took a Digital Electronics course where the course project was to design and build your own microprocessor from scratch. From paper RTN descriptions to the full working prototype on a PLC. Our group started out with 6 people, 3 of whom dropped the class and the other two couldn't program their way out of a paper bag. I wrote the entire process in VHDL in under 2 months, the other two barely pulled of just the documentation (not that I envied them). I was pretty pissed at my professor since I used a design flaw in the PLC board to double the speed of one word instructions and he took of points for it even though it ran fine... What you get when the prof is more interested in procedure and forcing people to work in groups then the actual science.
  • by that this is not und ( 1026860 ) on Sunday November 04, 2007 @04:40PM (#21234547)
    You also need a good TTL manual. I recommend the old orange hardcover Texas Instrument TTL Data book. The blue softcover cover National Semiconductor one will do in a pinch.

    If you're just starting out, get Don Lancaster's TTL Cookbook first.

  • by wtarreau ( 324106 ) on Sunday November 04, 2007 @05:26PM (#21234891) Homepage
    I can imagine the pleasure he got doing this.

    When I still was a teen, I used to spend full week-ends doing such nerd stuff.
    I wrote a PC-compatible BIOS for my Sanyo-MBC550 (eg: here: http://www.seasip.info/VintagePC/sanyo.html/ [seasip.info]),
    and was the happiest person of the world when I first got MS-DOS 5.0 to boot on it !

    I also designed a simple microcontroller-based robot from printer parts
    just for fun, and I was really impressed when I saw it turn around the
    whole room for the first time (it could detect obstacles by sending
    ultrasonic pulses).

    Also, modding a 8088 motherboard to accept a second 8088 on the 8087 socket
    was definitely fun. There was no cache coherency problems at that time. You
    just had to invert A19 to make the second one boot at 512 kB and the bus arbiter
    let them work in parallel. It was really cool to have an 8088-SMP :-)

    Those were project during which the time did not exist. I can imagine that this
    guy spends his whole spare time on his project without noticing the night come,
    then the day... Sometimes I wish I still had that much spare time!

    Sincere kudos to him and great respect for his work!
    Willy
  • Re:Self flagellation (Score:4, Interesting)

    by Linker3000 ( 626634 ) on Sunday November 04, 2007 @05:47PM (#21235095) Journal
    In the early 80's I spent part of my Electronic Engineering apprenticeship in the wiring shop of a company that made flight simulators. One day my supervisor gave me this dirty great wirewrap backplane to complete - it was sheer hell to do and took me the best part of a week. When it was finished I had to submit it to the mechanical inspection team who not only unwrapped some joints to check them out, but also tested various functions using special diagnostic boards. After some remedial work and final checking the work was done. My supervisor came over and said "Good news, your work has passed inspection", closely followed by: "The bad news is those panels come in pairs!". Aaargh!!
  • by RzUpAnmsCwrds ( 262647 ) on Sunday November 04, 2007 @05:51PM (#21235137)
    We do the same thing at my university in a course called "Computer Architecture". Well, not quite the same thing. We use FPGAs and Verilog to implement the CPU, and instead of a microcoded CISC CPU we implement a RISC architecture.

    Since our design lacks cache, the CISC architecture that this guy implemented may be faster (it does more per instruction which is critical when instruction fetch time dominates.

    However, our RISC design is fully 32-bit (registers, ALU, address and data buses) and is pipelined (classic 5-stage fetch/decode/execute/memory access/register write). We also have to deal with hazards (resolved by forwarding or pipeline bubbles). We're even working on a VLIW version now.

    Of course, all of this is vastly easier when you can use a high-level hardware description language. Hats off to this tinkerer.
  • Re:Doomsday paranoia (Score:5, Interesting)

    by philicorda ( 544449 ) on Sunday November 04, 2007 @06:09PM (#21235299)
    I'd like to think that a guy who can build a computer from TTL understands them at a basic enough level to design one from almost anything.

    Even a computer built from relays is still very useful if the alternative is pen and paper.
    I've sometimes wondered how far back in history you'd have to go before the technology was incapable of making a reliable relay and a battery. Not such an easy thing, but in some ways easier than a mechanical computer like Babbage's difference engine. (The fine tolerances required for the machined parts gave Babbage so much trouble.)

    Perhaps two hundred years ago, maybe more.

    I suppose the technologically hardest part is drawing the fine copper wire. For the rest, people have been using molds with molten metal for millennia. Chemical batteries are not too hard to make if you have enough amphora. :)
  • by beadfulthings ( 975812 ) on Sunday November 04, 2007 @06:13PM (#21235329) Journal
    But Dr. Tanenbaum's book on operating systems, which still seems to be in print, came equipped with its own version of Minix on a floppy disk, and you could easily get it going on your 808x-based PC--which was just about all anybody had when I was first reading the book. That would have been mid-to-late Eighties, but it had been around for a while even then. I'd have to go along with people who say Minix is an uncle of Linux--or maybe an auntie. If I could save only two vintage computer books, that would be one. The other would be my treasured old edition of "Oh! Pascal!"
  • Re:Doomsday paranoia (Score:1, Interesting)

    by Anonymous Coward on Sunday November 04, 2007 @06:43PM (#21235583)
    Don't worry. You're not paranoid; I sometimes think the same. Let's hope it never happens, 'cos if it does it will not be pretty.

    For people that have difficulty imagining, there's a rather instructive 1984 feature length movie that takes just such a premise as a scenario.

    It's on Google video : http://video.google.com/videoplay?docid=-2023790698427111488 [google.com]

    (for those with short spans of attention, it *really* kicks off at 45 minutes)
  • by Cheesey ( 70139 ) on Sunday November 04, 2007 @07:30PM (#21235911)
    Indeed, control of the network is how trusted computing will be forced on us. TC advocates always point out that the system is opt-in, that you can choose not to use the TC chip, but what is the point of that when doing so means that you cannot go online?

    I wrote about this before here [slashdot.org]. It's an important issue but I think people aren't really listening. I think it all sounds a bit far-fetched, especially to techies. Central control of the Internet? The source of every packet being verified in transit to ensure it originates from a licensed "trusted" computer? Trusted status (and Internet connectivity) lost as soon as you install a non-approved application? But the technology exists, and so does the political and corporate will to implement it. All that's needed is a way to justify the costs and inconvenience to the public, and we already know what they're going to say. It'll have something to do with thinking of the children and the war on terror. The "trusted Internet" will be promoted as a salvation from online criminals, and the fact that it will have other useful side effects such as enabling central control of information distribution will not be mentioned.

    I suppose it all sounds a bit like "OMG DRM the sky is falling!" But if we don't think about these issues and how we will prevent them from threatening our freedom, then we will just end up blindly accepting them. I think widespread use of free software is key because hardware and software monocultures are the greatest threat. If the trusted Internet is not compatible with sufficient computers, it will be prohibitively expensive to implement.
  • by Robotbeat ( 461248 ) on Sunday November 04, 2007 @07:35PM (#21235937) Journal
    If I were going to make a computer myself from a medieval technological standpoint, I'd make it out of vacuum tubes. It's really the only way (well, discounting relays, but I guess if you can make relays you can pretty much make vacuum tubes...).

    The other parts aren't that hard. You have capacitors (just need sheets of metal foil and paper for between them), inductors (coils of wire), resistors (again, wire), and diodes (basically just a simpler version of a vacuum tube... i.e. without the grid).

    If you look at some of the intricacies of medieval jewelry and such, I wouldn't think it's too much of a step to make vacuum tubes.

    Like this: first, learn to make copper wire. Next, make a chemical battery. Then, use the battery technology to develop permanent magnets... Make a lot of money by selling excellent "artificial lodestone" compasses to everyone. Buy more slaves. Then, wrap the wire into a generator coil, along with the magnets. Using water-wheel technology, you now have a reliable source of (at this point alternating current) electricity.

    Next, make diodes:

    Learn to blow glass. Put two electrodes in a glass bottle with a heater coil on one of them, and also a valve connected to a tube. Fill the bottle with mercury, then using just gravity, you drain the bottle of mercury without letting air in: this can create a good enough vacuum to make the diode work. The only difference between this and a vacuum tube is that there's no "grid" between the electrodes.

    The heater coils can be heated with the AC generator, and these diodes can be used to convert your electricity to direct current, enabling you to more cheaply produce magnetic compasses in order to fund your purchases of slaves.

    Simply train them to make you more vacuum tubes, and you can make a computer! In the middle ages! Also, your diode/vacuum tube technology is the same needed in order to make light bulbs.

    Really, in order to make a computer using medieval technologies, you'd need slave labor, or serfdoms (which is the same thing).

    I mean, there's pretty much no way a man can be expected to make enough vacuum tubes to make even a simple computer... I'm thinking it'd take you thousands of tubes...
  • by smellsofbikes ( 890263 ) on Sunday November 04, 2007 @09:03PM (#21236543) Journal
    This was about five years ago and he'd implemented a 16-bit (instruction and data) computer entirely through TTL, with wire-wrap. It included enough to do RS232 so you could telnet into it, although it certainly didn't have anything like an expandable bus. They'd written a tic-tac-toe game for it, and it was pretty good.

    The really odd moment was overhearing the hardware guy talking to one of the software guys, who was bemoaning the lack of a logical shift-right as opposed to a bitwise shift-right in the assembly code. The hardware guy sat down, drew a couple of things, and said, "yeah, we can add that with four gates." Wouldn't THAT be nice, to be able to spend two hours wiring, and add a new assembly instruction to your processor?

    I wish I could find links: they're all members of the Denver Mad Scientists' Club, but I can't find anything on their homepage.
  • Re:Self flagellation (Score:3, Interesting)

    by chthon ( 580889 ) on Monday November 05, 2007 @06:30AM (#21239371) Journal

    I have designed a small microprocessor and implemented it with a toolkit I wrote myself in Common Lisp. This toolkit simulates functional elements like registers, latches, an ALU and a microprogrammed controller.

    I worked 10 months on it, but much of that was time spent (re)learning to design circuits, documenting, project management, learning the intricacies of Common Lisp, and the SBCL and CLISP implementations. I also searched and bought some old books to get some more background information.

    The speed of the processor core, compiled using SBCL, is 125kHz (yes, you read that right) on my 1800 Mhz AMD system.

    After a long pause, I started this week again working on the visualisation, which should be a Python GUI application, which runs the real processor core program as a subprocess (not enough portable visualisation tools in Common Lisp).

    Several of your ideas above presented are exactly my thoughts also. However, if you go to the utter core, you keep having a reliance on corporate America (even here in Europe).

    How far would you go building your own computer, and what software would you run ?

    The first step down from building a computer with an existing processor would indeed be to go to SS/MSI functions. However, these are also manufactured by big corporations and are (here in Europe) more difficult to find.

    Will you wire wrap or etch boards ? Wire wrap reduces your switching speed, a double-sided etched board can probably get your switching speed to 8 MHz (see this example [mycpu.eu]).

    What software will you run ? There are currently two portable compilers, gcc and lcc. Unless you really want to write things yourself, you will need a good software stack. Maybe an old Linux kernel can do. Network hardware ? Other peripherals ?

    I have been thinking further. My current test architecture is 12 bits, but my toolkit can be used for simulation of widths between 1 and 32 bits. I have been able to draw a schematic implementation using LSTTL components, with a projected speed of about 6 MHz. There is only one path to a wider and faster architecture, and that is using FPGAs and so forth.

    The advantages are that it is easy to add more hardware functionality and have higher speeds.

    When you want to implement a processor using MSI/SSI components, you want to add most functionality using the microprogram or ordinary software. If you want to increase speed, you need to add more hardware. Using a modern FPGA, the design can be changed to move software coded functionality into real hardware.

    Higher speeds come automatically with using the FPGA, but you still have to take into account the limitations of the printed circuit board, especially in the realm of memory access.

    My ultimate, projected goal is be a design that can fit in an FPGA, together with a port of GCC, and an instruction set that is based upon two criteria : the simplicity of the processor design, and the optimized code that can be generated by GCC. Generated code should be both fast and short (to not take up much memory). For this, I need a whole lot of analysis of generated code for a hypothetical processor ISA.

    However, I still have to do some more work on the current design, specifically adding an IO structure and interrupt handling. And also find time to publish my work so that interested people can use my code.

  • Re:Why not PCBs? (Score:4, Interesting)

    by Alioth ( 221270 ) <no@spam> on Monday November 05, 2007 @07:38AM (#21239669) Journal
    With modern high resolution (and inexpensive) laser printers, you can make remarkably fine pitch PCBs at home for a couple of quid. I just made a breakout board for a W5100 ethernet controller, which comes in an LQFP80-10 package (this package is 1cm by 1cm with 80 pins. The pins are 20 a side, and 20 pins fit into 8mm - so your tracks are 0.2mm wide with 0.2mm spacing - this is finer pitch than the design rules for some commercial PCB houses).

    This was made with these tools:

    double sided copper clad board
    two sheets of the cheapest Tesco's Value brand matte inkjet paper
    an HP LaserJet printer (1200dpi)
    a normal domestic household iron
    some fine grit wet-and-dry sandpaper
    etchant and tinning chemicals.
    an inexpensive pillar drill and 0.8mm / 1.0mm bits to make vias and holes for through-hole components

    The consumables for this (photo paper, cost of printing, the blank PCB) was less than a couple of quid. It is quite time consuming though, but I enjoy making the boards anyway. It's nice to achieve something that everyone else tells you can't be done.

    I *hand soldered* the fine pitch surface mount parts. All you do is carefully line up the part, tack corner pins into position with solder, then get a blob of solder on the tip of the iron and drag it down the pins - then mop up the excess with solder wick.

    The nice thing about making PCBs rather than wire wrapping is you can use surface mount components (quite a few interesting chips are only available in insanely fine pitch SMD packages), and make a reasonable ground plane.
  • by RockDoctor ( 15477 ) on Monday November 05, 2007 @09:26AM (#21240309) Journal

    Does it run Linux... I mean minix.. I mean... Oh forget it!


    FTFA :
    Additionally, it "supports user and supervisor modes,..."

    From that alone, you should be able to deduce that it could in theory run a multitasking OS. Supervisor mode for when the OS needs to do things, user mode for userland stuff.
    If it's got the grunt of an 8086 with a couple of megs of RAM, then it's up there with the machines on which the Internet was developed and considerably after (in computing generation terms) the machines on which multitasking and Unix-alike operating systems were developed.

"Ninety percent of baseball is half mental." -- Yogi Berra

Working...