Having been working with computers since 1975, I have long wanted to build my own CPU. In my
playing research, I ran across a paper by Professor Douglas W. Jones of the University of Iowa (http://www.divms.uiowa.edu/~jones/arch/risc/). This article really captured my imagination, and I have not been able to get it out of my mind. This is, pretty much, the ultimate in simplified CPU design.
Professor Jones’ paper presents the design for a computer with only a single instruction. At first, (having grown up watching the 8080 being trumped by the Z-80 and then Intel upping it’s own 8080 with the 8085 followed by the 8086 and so on…) my mind had a difficult time wrapping itself around a single instruction actually being useful. Prof. Jones even discusses some real-world single-instruction computers at the end of his paper.
People who deal with logic know that any logic can be generated from only NAND gates. Thus, a computer which can only perform a NAND operation should be able to emulate all other operations. Likewise, it turns out, a computer which does nothing more than subtracting one number from another and then jumping to a new location can emulate all other operations. Wikipedia discusses some of those computers in their article on One Instruction Set Computer (http://en.wikipedia.org/wiki/One_instruction_set_computer).
Prof. Jones presents another type of single instruction computer, the MOVE computer. The only instruction available to this CPU is the MOVE command. This does bring up a few difficulties such as: how does the CPU modify it’s program flow… How do you do logic or arithmetic functions, etc.
His paper covers all that pretty well. After reading his paper, it started to strike me as being an insanely simple architecture. I think that this is a good way for people to get into the design of a CPU. My next project will be an implementation of this MOVE computer in hardware (probably just an MPU emulating the CPU to begin with.)