The three Rs

It strikes me that when embarking on a project like this there's three things that are of uttermost importance, the three Rs if you will:

Research, research and research.

There's a lot to be said for experimentation and working things out but the human race wouldn't have got very far it didn't share knowledge and learn from each others mistakes. So naturally, if I want to build my own computer from scratch I should start out by doing lots of reading about how old computers were built.

Which is fine in theory but let me dole out my first character caveat ... I'm not really one of lives great researchers. I tend to skim read, pick out the best bits, flit around; I just haven't got the patience or concentration to read a large body of text start to end. I do quite admire those who can absorb large quantities of information and regurgitate the salient facts intelligently but it's not in my nature — in fact I think it's fair to say that pretty much everything I know has been learnt by skim reading and then doing. Come to think of it I'm even worse with instructional videos — at work all the devs have access to PluralSight (which is otherwise generally excellent) but I find that after 10 mins of watching my mind will wander unless I can actually follow along having a go myself.

So what am I saying here? Basically before I've even begun I'm going to break the one rule which would see me building this project in a structured and directed manner so it's quite likely I'd end up making some awful mistakes along the way and probably have to do a fair amount of re-work along the way (which actually for me is the fun bit in a perverse kind of way). So, if I can't (be bothered to) research properly then where should I start from. Well, the musings of my third paragraph still stand — I can still learn from others and take inspiration, I'll just take a look at what others have done in a similar field and see what they came up with.

After a good light meander through the internet I came across a webring dedicated to home built computers. This is an excellent place to start if you're fancying embarking on a similar project — tons of information. For me though there's two stand out projects that are closely aligned with what I'd like to achieve. The first (which I'm personally considering the grand-daddy of this kind of thing) is the Harry Porter Relay Computer which is quite an impressive beast (both technically and of physical size). Second is the RC-3 Relay Computer built by Phil Ryals' team at the Museum of Computer Culture which is itself inspired by Harry Porter's computer. Harry provides a wealth of information on how his computer is constructed and the theory behind it (in nice bite sized chapters fortunately for me) along with oodles of hand drawn schematics and diagrams. Phil extends this work with full computer drawn schematics for building a similar computer with extra features and a few tweaks Harry himself would have made if he'd done it all over again. Phil's machine isn't small either, or for the feint of heart, and if I'm going to do something similar I'm going to have to seriously think about shrinking it down either in size or functionality.

So, the scene is set — I'm going to draw inspiration from the Harry Porter and RC-3 computers so that the bits where I could go badly wrong (wrong architecture, short sighted design decisions) are covered and I can learn how these sort of computers work as I go along but I can still make my own smaller design decisions and still construct it in my own 'special' way.


Popular posts from this blog

ALU Design: 1-bit Arithmetic Unit

ALU Design: 8-bit Arithmetic Unit

Decoder Design: MOV-8, ALU & SETAB