Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Complete computer designed and built from logic gates (homebrewcpu.com)
98 points by jgrahamc on Aug 5, 2009 | hide | past | favorite | 29 comments


a repost of:

http://news.ycombinator.com/item?id=741639

By popular request...

What I find extremely impressive is that he not only designed a computer from the ground up using nothing but TTL, he also designed the cpu and instruction set.

Most people would be tempted to re-create an existing design, this guy basically did on his own what would have taken a whole corporation consisting of lots of people 30 years ago.

It's not like a re-enactment, it is a completely original design.


Surely it's more fun to do your own design? It would be for me, anyway.


Definitely, but designing an instructionset is not that easy. Small changes in how you lay out your instructions can have a big impact on the design.

The nicest I think are 68K and mips, everything else is pretty messy.

A good standard by which to measure how good an instruction set is is how many lines of code it takes to simulate it.


> The nicest I think are 68K and mips,

No, the nicest is the ARM.


ah, yes. Missed out on that one! I actually had one of the first ARM based machines straight out of 'Acorn' (before they went on general sale) through a deal with the dutch importer (lvl rocom).

The only software that it came with was a game called 'lander', it didn't do much other than display this amazing 3D landscape that you could fly across to shoot at stuff.

We'd be mesmerized for hours by how smooth the animation was.

It was pretty sad to see the ARM to go down the way it did only to be resurrected as an embedded platform. What a missed chance!

Just about everything coming out of Acorn (except maybe the atom) was engineered so well it was quite amazing.

The bbc micro had a dual processor option (in those days pretty much unheard of, the only thing that would come close would be a float coprocessor in an ibm, but that would not be a secondary general purpose processor) through a flatcable connector on the bottom of the machine called 'the tube'. The ARM was originally designed to be one of several coprocessors available for the bbc.

I heard an interesting anecdote about the ARM at the time, that it was the only processor designed that worked on first silicon. They'd built a simulator for it and used that to verify the design.

I didn't get much assembly time on it though, this was just about when Acorn went under as a manufacturer of general purpose computers (the 'master series' bbc were also pretty good). So I moved on to the Atari ST and the IBM pc (a homebrew machine that I built on top of a filing trolley, a buddy of mine welded a steel sheet to an empty folder hanger trolley and that became the basis for my pc, motherboard bolted on top, powersupply to the bottem. It looked pretty scary :) ).


does nicest mean most elegant design? because software support had been weak even if for a period of time microsoft made NT avaliable on mips and alpha. i'm curious about what went wrong primarily.

another thing is that in today's power first times where are the mips guys? how would they stack up against arm or ion?

last thing is can we have fabs that custom produce cpu much bigger than intel/amd ones but smaller than homebrew ones?


>Shortly after I declared Magic-1 "hardware complete", I casually mentioned to my wife that I was starting to think about Magic-2. Her response was swift, and final:

> "No, there will be no Magic-2!"

...omitted...

> She's the love of my life, the woman I plan on growing old with, mother of my children, my partner and best friend. I have to respect her wishes on this.

> So, there will be no Magic-2.

> Instead, we'll call the follow-on project "Magic-16".


This is awesome.

Surely there's some ROM in there. I can't imagine the microcode is in an FSM.

When I was at CMU, my capstone engineering class was to build a machine that was capable of a small set of tasks (One that I remember was multiply two 16-bit numbers.) We were to optimize for some specific thing -- ours was "most sleep" (that is, least work) and "least wire wrapping." So it was as simple as possible; entire control path fit in a PLA for example.

Anyway, one of the other groups apparently optimized for AWESOME. We were there with our single board and a multicolor cloud of wire-wrap; they showed up with a multiple board computer. The boards had a pair of 68-pin IDC connectors and two huge wide cables as a bus.

The machine basically was fully asynchronous and had no clock. One board was an ALU, one was the control unit, etc. For their demo they both ran with one or two ALU boards and got different performance.

This was 1995 or so, so quite progressive for the time.


Computers constructed from solely logic gates have an impeccable pedigree: Apollo's onboard flight computer

"The Apollo flight computer was the first to use integrated circuits (ICs). The Block I version used 4,100 ICs, each containing a single 3-input nor logic gate. The later Block II version used dual 3-input nor gates in a flat-pack, approximately 5,600 gates in all. "

http://en.wikipedia.org/wiki/Apollo_Guidance_Computer


Didn't the Apollo flight computer crash/have to be restarted during the landing phase?


Yes.


No it didn't. It worked perfectly as designed. Buzz Aldrin left the rendezvous radar on, which together with the data from the landing radar overloaded the computer, but it handled it properly and kept on running. Great work, job well done.


Nice. I've got a 4-bit one built from relais by a German guy: http://www.relaiscomputer.de/kurz6.htm


I wish I knew how to get started on something like that...


You could start by building a ALU and work up from there.


I've built an ALU for a simulator ;)

But I wouldn't know where to go from there and I wouldn't know how to make a physical one.

Are there any OCW-courses (or similar) on the subject? Preferably with a hands-on approach :)


If you're interested in this I suggest you get the reference manuals for one of the simpler 8 bitters (6502, 6800, 6809, Z80 or 8051) and have a look at the block schematic for the cpu.

here is the 6809 (my favourite of the ones above):

http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/68...

You could go several routes to make one, first build a software simulator so you have something to validate your design with, then either use an FPGA or use wire wrapping like the author of the OA did (that's possible but also very very time consuming, and if a cpu is your first project is going to be a very frustrating experience).


I've heard good reports about "The elements of computing systems"

http://www.amazon.com/gp/product/0262640686?ie=UTF8&tag=...

Theres a tech talk about the book:

http://video.google.co.uk/videoplay?docid=765404376202115650...


If your tysk is still fresh, try Keller&Paul[1]. It was the text for my second-semester hardware course, in which we "built" a real processor from 74somethings. "built" because we didn't really touch hardware, we just looked at schematics and computed timings.

[1] http://books.google.com/books?id=u5kIA7iyfl4C&lpg=PA276&...


I suspect your university library will have more than enough subject matter about the theory.

http://www.timefracture.org/D16docs/wire_wrap.html describes the practice of wire-wrapping, the technique used here.



I looked around a bit and found out that the course from '07 includes video lectures. :)

http://6004.csail.mit.edu/Spring07/


Thanks! :)


Incredible! Both thumbs and both big toes up!


Lovely project. Wish I had the patience for that (and a nice logic analyser). By the time I'd started at university, it was all FPGAs, HDL and simulation. A shame really.

The nearest I ever got was a pure TTL digital clock.


There is something very good about learning the hard way how to debug a logic circuit instead of having an FPGA in some factory made board. You get to see how finicky hardware really is.


Undeniably impressive, but saddening nevertheless. The man insisted on replicating the mistakes of the past: Von Neumann bottleneck, C, Unix. This creation is a "model airplane" - a world-class one, to be sure, but a model airplane still.


Building the hardware is an amazing project. You are suggesting that he should have designed a new architecture, core language, and operating system as well?

Maybe he should just cure cancer too.


I'm sure that just doing this is a major project, and that if I read it right he did this in his spare time. Between having a wife, kids, a day job and a house to keep up he's done pretty good. And it's very well designed from the aesthetics point of view as well.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: